C#将UTC时间转换为中央,包括DateTime对象中的时区



我正在将UTC时间转换为从本地服务器时间到中央标准时间。我在德国的服务器上运行了此操作。

转换时间和日期有效,但是当库将其转换为字符串时,它的时区偏移错误。

它以 2019-05-11T14:44:09 02:00 出现。当我需要它是 2019-05-11T14:44:09-06:00

TimeZoneInfo CRtimezone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, CRtimezone);

02:00 是德国的UTCOFFSET,我不想要,即使时间和日期在中心时间正确。

是否有一种方法可以通过或包含DateTime对象中的偏移?

有没有办法通过或在dateTime对象中包含偏移?

不,DateTime结构确实具有UTC偏移,但DateTimeOffset具有。如果您真的想将UTC偏移值保留在代码中,我建议您使用DateTimeOffset而不是DateTime

由于它无法保持UTC偏移值,因此当您获得 textual (又称字符串(表示时,您 still 在德国获取服务器的偏移值(包括Kzzzzzz指定器。TimeZoneInfo.ConvertTimeFromUtc方法返回一个DateTime实例,您可能要表示的偏移值取决于您要显示它。

一个选项可能是您可能想加入DateTime和TimeZoneInfo.BaseUtcOffset值的可排序(" S"(格式指示符。

TimeZoneInfo CRtimezone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
$"{TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, CRtimezone).ToString("s")}{CRtimezone.BaseUtcOffset}".Dump();

相关内容

  • 没有找到相关文章

最新更新