我有这个UTC 0日期:
2011-11-28T07:21:41.000Z
我希望,在C#上,将其转换为PST日期.我该怎么做?试过:
object.Data.ToLocalTime()
但我无法得到正确的值(应该是2011-11-27)
编辑
还尝试了(在另一个主题的建议之后):
DateTime convertedDate = DateTime.SpecifyKind( DateTime.Parse(object.Data.ToShortDateString()),DateTimeKind.Utc); DateTime dt = convertedDate.ToLocalTime(); string dataVideo = dt.ToShortDateString();
但是日期仍然是2011年11月28日,而不是2011年11月27日
解决方法
我已将时钟更改为使用UTC-08:00太平洋时间.
DateTime timestamp = DateTime.Parse("2011-11-28T07:21:41.000Z"); Console.WriteLine("UTC: " + timestamp.ToUniversalTime()); Console.WriteLine("PST: " + timestamp.ToLocalTime());
输出:
UTC: 28/11/2011 7:21:41 PST: 27/11/2011 23:21:41
TimeZoneInfo的示例
DateTime timestamp = DateTime.Parse("2011-11-28T07:21:41.000Z"); Console.WriteLine("UTC: " + timestamp.ToUniversalTime()); Console.WriteLine("GMT+1: " + timestamp.ToLocalTime()); Console.WriteLine("PST: " + TimeZoneInfo.ConvertTimeBySystemTimeZoneId(timestamp,"Pacific Standard Time"));
输出:
UTC: 28/11/2011 7:21:41 GMT+1: 28/11/2011 8:21:41 PST: 27/11/2011 23:21:41