gpt4 book ai didi

date - 是否有比 UTC 更 "Date"的替代 "ambiguous"数据类型?

转载 作者:行者123 更新时间:2023-12-02 01:44:50 25 4
gpt4 key购买 nike

在大多数编程语言中,典型的 Date 数据类型是一个 Unix 时间戳,表示“准确的时间时刻”。

但我想知道是否存在更“模糊”的 Date 结构,它更接近于代表人类对日期的感知。

例如,假设我想表示特定年份 (2000),或特定月份 (January 2000),或特定日期 (January) 1, 2000)?
我可以将其存储为 Unix 时间戳,即 1/1/2000 12:00 AM GMT
但是计算机根据本地时区解释时间戳,所以我的计算机会显示 12/31/1999 5:00 PM PDT,并且每台计算机都会以不同的方式解释它。

由于 Unix 时间戳似乎是精确时刻的标准,我只是想知道是否有任何类型的模糊时刻的标准。
如果没有标准,我很乐意阅读有关处理这些场景的任何特定实现(任何语言)。

最佳答案

是的,您会在很多地方遇到这种情况:

  • ISO-8601标准,作为 YYYY-MM-DD 格式的字符串。例如 "2014-10-08" 是 2014 年 10 月 8 日。

  • 在 .NET 语言中,例如 C#,DateTime type 是日期和时间,但不一定绑定(bind)到特定时间。这取决于名为 Kind 的内部属性,它可以是 UtcLocalUnspecified。如果未指定,则它只是一个日期和时间,不涉及任何时区。不过它仍然有时间成分。

  • 在 .NET 库中 Noda Time , LocalDate类型是没有时间或时区的纯日期。同样,LocalDateTime是没有时区的日期和时间类型。

  • 在 Java 库中 Joda Time , LocalDate类型是没有时间或时区的纯日期。同样,LocalDateTime是没有时区的日期和时间类型。您还可以在新的 java.time API in Java 8 中找到这些类型.

  • 在 C 或 C++ 中,tm结构表示日历日期和时间,不考虑时区。它在标准库中,连同 t_time具有您在问题中描述的行为的结构。

  • 在 Python 中,date对象表示没有时间或时区的日期。 datetime对象表示日期和时间,带有可选 时区。当没有时区信息时,Python 称它们为naive,而当提供时区信息时,Python 称它们为aware

  • 在许多数据库中,有日期和时间数据类型,或者不考虑时区的仅日期数据类型。我不会列出所有数据库,但请考虑具有单独 datetime 的 Microsoft SQL Server和 date类型。

我敢肯定还有很多其他的,但是它们不一定适用于所有 语言。例如,PHP 有一个 DateTime类,但它是时区感知的,而且我不相信存在不存在的类(或者我无论如何都找不到它)。 JavaScript 是另一个例子,因为它的 Date对象实际上是一个绑定(bind)到基于 UTC 的时间戳的日期和时间对象。

顺便说一句,Pluralsight 类(class) Date and Time Fundamentals 涵盖了这些类型(以及更多) ,其中我是作者。您不妨检查一下。

关于date - 是否有比 UTC 更 "Date"的替代 "ambiguous"数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26265061/

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