C# 仅设置或更新时区值,不转换

问题描述 投票:0回答:1

我正在根据年、月、日、小时、分钟和秒的 int 值构造一个新的 C# DateTime。这些值已针对目标时区进行了调整。 (我无法改变这一点。我被赋予了这些价值观)。

现在,当我构造新的 DateTime (年,月,...)时,它的时区是我的 PC(系统)的时区,与目标时区不同。

如果不转换我的输出 DateTime(实际时间是正确的,并且已经针对目标时区进行了调整),我如何只更新/设置时区或 DateTimeOffset?因此,到目前为止,我能够使其工作的唯一方法是将我的系统时区设置为目标时区。我不想再这样了。

尝试了不同的日期时间库。但他们所做的只是转换。我不需要转换。仅设置时区。

c# datetime timezone
1个回答
0
投票

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
)

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.