gpt4 book ai didi

c# - 如何在特定时区创建 DateTime 的新实例?

转载 作者:太空狗 更新时间:2023-10-30 01:30:23 25 4
gpt4 key购买 nike

给定一个特定的 TimeZoneInfo 实例,我如何在指定的时区创建一个新的 DateTime 实例?例如,如果我有:

var tz = TimeZoneInfo.FindSystemTimeZoneById("US Eastern Standard Time");
var date = new DateTime(2017, 1, 1, 0, 0, 0, DateTimeKind.Unspecified);
Console.WriteLine(TimeZoneInfo.ConvertTime(date, tz));

无论我定义什么 DateTimeKind(Utc、本地或未指定),我总是得到 12/31/2016 7:00:00 PM。

我如何声明一个新的日期时间,即美国东部标准时间 2017 年 1 月 1 日 0:00:00?

最佳答案

您可以使用 TimeZoneInfo 检索您的区域

你可以找到timezones这里

var zn = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");

要表示您使用的是本地东部标准时间,请使用 DateTimeOffset 结构而不是 DateTime

DateTimeOffset dateTimeOffset = new DateTimeOffset(new DateTime(2017, 1, 1, 0, 0, 0, DateTimeKind.Unspecified), zn.BaseUtcOffset); 

为什么 DateTimeOffset

DateTimeOffset 是瞬时时间(也称为绝对时间)的表示。

关于c# - 如何在特定时区创建 DateTime 的新实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45289941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com