I’m working on an application in C# with .Net 3.5. I have time zone value of the User is stored in DB with this format (-05:00,1), where -5.00 represents EST time zone value and the 1 indicates that this time zone follows daylight saving (if 0 not a daylight saving zone).
Now I want to convert any date time value into this timezone value considering the daylight saving value.
Any help is appreciated. Thanks
Having just an offset and whether or not it’s in daylight saving time isn’t really enough to indicate a time zone: there can be several time zones with the same standard offset and DST offset, but which have DST transitions at different times.
Is this data already in the database, or are you still designing it? Ideally you should store a time zone ID – the ones
TimeZoneInfoworks with are Windows IDs, which isn’t ideal IMO (I prefer the IANA/Olson IDs that the rest of the industry tends to work with) but at least it does represent a real time zone.Once you’ve got a
TimeZoneInfoand an instant that you want to convert,ConvertTimeFromUtcandConvertTimeToUtcare probably what you’re after – but be careful about what you mean by “any date time value”; you need to make sure you always know exactly what you’re representing.The BCL is somewhat woolly on all of this, which is one of the reasons I started Noda Time, which allows use of the IANA time zone data as well as the BCL.