gpt4 book ai didi

c# - .Net 中是否有 ZonedDateTime (Java)?

转载 作者:行者123 更新时间:2023-12-04 09:31:54 25 4
gpt4 key购买 nike

我发现的最好的等价物是 DateTimeOffset + TimeZoneInfo 的组合。这是最好的方法,创建一个包含这两个类的结构并确保它们保持一致?

最佳答案

不,没有类似于 ZonedDateTime 的内置类型在 .NET 基类库中。
正如其他人指出的那样,如果您正在寻找类似于 Java 的 Joda Time 或 java.time 的时间模型,然后考虑使用 Noda Time .它有一个 ZonedDateTime 结构体。
如果您不想使用 Noda Time,并且您确实需要一个包含日期时间偏移和时区的对象,那么您建议使用 DateTimeOffset 结构体的方法。和 TimeZoneInfo字段是有道理的。以下是一些额外的提示:

  • 将其设计为不可变结构很重要,换句话说 - 仅从构造函数获取输入。仅在字段上公开属性 getter。不要直接公开字段,也不要在属性上提供 setter 。
  • 请注意您希望如何处理 DateTimeOffset 的偏移量的情况。不是给定时区的正确偏移量。您可能想要调整它,或者您可能想要抛出异常。
  • 您可能需要为您的结构提供自定义序列化,如果保存到数据库,您可能需要解构它。在任何一种情况下,只保留字符串 IdTimeZoneInfo成分。不要尝试序列化或存储整个对象。

  • 也就是说 - 如果您需要这样的对象,您可能需要重新考虑。在很多情况下,只需使用 DateTimeOffsetTimeZoneInfo分开就够了。

    关于c# - .Net 中是否有 ZonedDateTime (Java)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62804207/

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