我想在 EST 中初始化 DateTime,然后转换为 Universal TIme
I want to initialize DateTime in EST and then convert to 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();
问题是我好像做错了。我正在将本地时区的日期时间转换为东部标准时间,然后再转换为通用标准时间。
我不知道最初如何初始化 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
在某些情况下,您可以使用(相对)新类型 DateTimeOffset
,如下所示:
var est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var offset = est.GetUtcOffset();
var dataTimeOffset = new DateTimeOffset(dateTimeWithoutOffset, offset);
var result = dateTimeOffset.UtcDateTime;
由于要在不同的时区工作,DateTimeOffset
可以使代码更清晰。
我想用东部标准时间初始化 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();
问题是我好像做错了。我正在将本地时区的日期时间转换为东部标准时间,然后再转换为通用标准时间。 我不知道最初如何初始化 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
在某些情况下,您可以使用(相对)新类型 DateTimeOffset
,如下所示:
var est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var offset = est.GetUtcOffset();
var dataTimeOffset = new DateTimeOffset(dateTimeWithoutOffset, offset);
var result = dateTimeOffset.UtcDateTime;
由于要在不同的时区工作,DateTimeOffset
可以使代码更清晰。