我正在根据年、月、日、小时、分钟和秒的 int 值构造一个新的 C# DateTime。这些值已针对目标时区进行了调整。 (我无法改变这一点。我被赋予了这些价值观)。
现在,当我构造新的 DateTime (年,月,...)时,它的时区是我的 PC(系统)的时区,与目标时区不同。
如果不转换我的输出 DateTime(实际时间是正确的,并且已经针对目标时区进行了调整),我如何只更新/设置时区或 DateTimeOffset?因此,到目前为止,我能够使其工作的唯一方法是将我的系统时区设置为目标时区。我不想再这样了。
尝试了不同的日期时间库。但他们所做的只是转换。我不需要转换。仅设置时区。
DateTimeOffset(int,int,int,int,int,int,TimeSpan) 构造函数可能就是您正在寻找的。它采用您期望的 Y、M、D、H、M、S 整数参数,但它还采用 TimeSpan,它是给定时区的 UTC 偏移量。
如果将其设置为正确的 UTC 偏移量(例如,
new TimeSpan(-5, 0, 0)
表示 UTC-5),您可以获得本地时间和 UTC 时间 (offsetDate.UtcDateTime
)