【发布时间】:2013-08-05 15:07:05
【问题描述】:
我知道这方面有很多问题,但我还是很困惑!
如何从 UTC 转换为 EDT。即到 EST(尤其是纽约)但有夏令时?
我正在尝试这个:
TimeZoneInfo edtZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
DateTime utcDT = UnixTimeStampToDateTime(double.Parse(fields[0]));
utcDT.Kind = DateTimeKind.Utc; //THIS LINE IS WRONG
DateTime edtDT = TimeZoneInfo.ConvertTimeFromUtc(utcDT, edtZone);
//Put in for as requested
public static DateTime UnixTimeStampToDateTime(double unixTimeStamp)
{
// Unix timestamp is seconds past epoch
System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
dtDateTime = dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime();
return dtDateTime;
}
谢谢
【问题讨论】:
-
请出示 UnixTimeStampToDateTime 的代码。
-
不管怎样,DateTime.Kind 是只读的。如果您有 本地时间并且想要获取它的UTC,您可以使用DateTime.ToUniversalTime,但要小心。无论如何,@JonSkeet 展示了一种更简洁的方式。