我有一个来自数据库记录的UTC DateTime值.我还有一个用户指定的时区(TimeZoneInfo的一个实例).如何将UTC DateTime转换为用户的本地时区?另外,如何确定用户指定的时区当前是否正在观察夏令时?我正在使用.NET 3.5.
谢谢,马克
我有一个日期时间对象,我知道UTC偏移量(双倍).如何从这两条信息中获取UTC时间?
我见过的所有例子都需要一个时区.好吧,我不知道什么时区,它应该不重要.如果我有-7的偏移量,它可能是PDT,或者它可能是MST - 它实际上是无关紧要的,因为要么产生相同的UTC.我必须将我所拥有的偏移量转换为时区似乎非常愚蠢,因此"ToUniversalTime"可以将偏移量拉回来.
老实说,我打算只使用这样的东西:
DateTime dateTime = new DateTime(2014, 8, 6, 12, 0, 0);
Double timeZone = -7.0;
string utc = String.Format("{0}-{1}-{2}T{3}:{4}:{5}{6}:{7}", startDate.Year, startDate.Month, startDate.Day, startDate.Hour, startDate.Minute, startDate.Second, (int) Math.Floor(timeZone), (timeZone % 1) * 60);
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我为什么这是一个坏主意?
(有人可能会将此作为副本关闭,但我查看了其他十几个问题,但没有一个完全相同 - 它们都使用了TimeZoneInfo对象).