.Net中是否有ZonedDateTime(Java)?

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

iCMS 回答:.Net中是否有ZonedDateTime(Java)?

否,.NET基类库中没有类似于ZonedDateTime的内置类型。

正如其他人指出的那样,如果您正在寻找类似于Java的Joda Time或java.time的时间模型,请考虑使用Noda Time。它具有ZonedDateTime结构。

如果您不想使用Noda Time,并且确实需要包含日期时间偏移量和时区的单个对象,那么建议使用具有DateTimeOffsetTimeZoneInfo字段的结构的方法感。以下是一些其他提示:

  • 将其设计为不可变结构很重要,换句话说-仅从构造函数获取输入。仅在字段上公开属性获取者。不要直接公开字段,也不要在属性上提供setter。

  • 请注意您要如何处理DateTimeOffset的偏移量不是给定时区的正确偏移量的情况。您可能需要对其进行调整,或者可能引发异常。

  • 您可能需要为您的结构提供自定义序列化,如果保存到数据库中,则可能需要对其进行解构。在这两种情况下,仅保留Id组件的字符串TimeZoneInfo。不要尝试序列化或存储整个对象。

也就是说-您可能需要重新考虑是否需要这样的对象。在许多情况下,只需单独使用DateTimeOffsetTimeZoneInfo就足够了。

本文链接:https://www.f2er.com/1972862.html

大家都在问