gpt4 book ai didi

datetime - 使用 NodaTime 将 UTC 日期时间字符串转换为 Zoned DateTime

转载 作者:行者123 更新时间:2023-12-04 02:55:27 25 4
gpt4 key购买 nike

我需要将 UTC DateTime 字符串转换为 ZonedDateTime

UTC DateTime 字符串只能是一种模式(M/dd/yyyy h:mm:ss tt) 因为 SharePoint 只支持这种格式>DateTime 类型列。

假设 (5/28/2013 1:00:00 PM) 作为我的 UTC 时间,我如何将它转换成 ZonedDateTime?我目前正在使用以下代码获取 ZonedDateTime

var dateTimeZone = DateTimeZoneProviders.Tzdb[zoneID];
var inst = Instant.FromUtc(year, month, day, hour, minute);
ZonedDateTime dz = new ZonedDateTime(inst, dateTimeZone);

以上代码需要小时分钟 作为 int 值。有没有更简单的方法直接从 UTC 字符串获取 ZonedDateTime

最佳答案

我认为您对源数据感到困惑。 SharePoint 不存储日期字符串。它将它们存储为 DateTime 类型。它们在 UTC,但它们不是字符串。

如果你有一个字符串表示,那么在你的代码中的某个点你做了一个 .ToString()或类似的,它选择了默认的 "G" format specifier .

所以你应该能够使用:

var inst = Instant.FromDateTimeUtc(yourDateTime);
var dz = new ZonedDateTime(inst, dateTimeZone);

您的另一个选择是在 SharePoint 中使用 DateTimeOffset 字段而不是 UTC DateTime 字段。 Read here .然后你可以使用 Instant.FromDateTimeOffset()

关于datetime - 使用 NodaTime 将 UTC 日期时间字符串转换为 Zoned DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16787962/

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