如何为模棱两可的本地时间戳将DateTime转换为DateTimeOffset?

我需要将数据写入C#应用程序中的SQL Server表中。表中时间戳字段的数据类型为DateTimeOffset,在我的应用程序中,我可以将时间戳作为本地DateTime对象或UTC DateTime对象获取。如何将这些时间戳转换为DateTimeOffset并包括本地时区的偏移信息?我的意思是说,我不希望DateTimeOffset对象的UTC时间和偏移量为0:00,而是希望始终包含本地时区的偏移量。

编辑:看起来像从new DateTimeOffset(value.Timestamp.LocalTime)这样的本地时间戳创建一个DateTimeOffset对象似乎很好,但是我不了解DST时间更改发生时怎么可能。当我在DST更改前后打印出两个本地DateTime对象时,得到以下结果:

// Before DST change
value.Timestamp.LocalTime
{25.10.2020 02:00:00}
    Date: {25.10.2020 00:00:00}
    Day: 25
    DayOfWeek: Sunday
    DayOfYear: 299
    Hour: 2
    Kind: Local
    Millisecond: 0
    Minute: 0
    Month: 10
    Second: 0
    Ticks: 637391880000000000
    TimeOfDay: {02:00:00}
    Year: 2020

// After DST change
value.Timestamp.LocalTime
{25.10.2020 02:00:00}
    Date: {25.10.2020 00:00:00}
    Day: 25
    DayOfWeek: Sunday
    DayOfYear: 299
    Hour: 2
    Kind: Local
    Millisecond: 0
    Minute: 0
    Month: 10
    Second: 0
    Ticks: 637391880000000000
    TimeOfDay: {02:00:00}
    Year: 2020

这些DateTime对象似乎是相同的,但是当我查看写入数据库的数据时,我看到了:

如何为模棱两可的本地时间戳将DateTime转换为DateTimeOffset?

这怎么可能?

djxzh0 回答:如何为模棱两可的本地时间戳将DateTime转换为DateTimeOffset?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1306764.html

大家都在问