c# – 我想在EST中初始化DateTime,然后转换为Universal TIme

我想在东部标准时间初始化DateTime,然后转换为通用时间.

我有一个DateTime(CurrentDT),其TimeZone未设置,但它在EST中.
它是从下面的sting解析的

“ddd, d MMM yyyy H:mm:ss”

我写了以下代码来解决问题.

  TimeZoneInfo currentTimeZone=null;
  currentTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");      
  CurrentDT=TimeZoneInfo.ConvertTime(CurrentDT, currentTimeZone);
  CurrentDT = CurrentDT.ToUniversalTime();

问题是看起来我做错了.我正在将DateTime(在本地时区转换为Eastern Standerd Time)转换为通用标准时间.
我不知道如何初始化CurrentDt的TimeZone.
请帮助我理解谢谢你.

最佳答案 如果我记得很清楚,DateTime不会保留有关TimeZone的信息,但是如果您知道某个DateTime在特定的TimeZone中,您可以从中获取UTC,如下所示:

var UtcDateTime = TimeZoneInfo.ConvertTimeToUtc(CurrentDt, TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")); // 1st param is the date to convert and the second is its TimeZone
点赞