I've been thinking about this, and I'm of the opinion that it is not a good idea to use manually-set offsets from UTC, because they will have to be changed manually for daylight saving, which will be a pest and fraught with oversight and error.
Allowing people to specify their time zone in a text field will have problems too. Most obviously it will mean everyone having to perform look-ups and calculations all the time. Also there is the issue that what people colloquially call their time zone might not be what other people are able to look up in standard references.
So I think the best thing would be one of those facilities such as you use in setting your time zone in the system of your computer, where you use [a map and] a drop-down list to pick your time zone from the IANA time zone database. That can be stored in a standard format and made the basis of automatic daylight saving time calculation, and permits no confusion over the colloquial and official usage of e.g. "EST".