gpt4 book ai didi

.net - 为什么 DateTime.MinValue 0001-01-01T00 :00 instead of 0000-01-01T00:00?

转载 作者:行者123 更新时间:2023-12-03 14:19:59 27 4
gpt4 key购买 nike

为什么在 .NET 中 DateTime.MinValue是 0001-01-01T00:00 而不是 0000-01-01T00:00?我认为 0 年应该是完全有效的,如 DateTime从概念上讲,在某些事件(如耶稣的诞生)之后仍然是间隔。

似乎与当前 DateTime实现不可能在耶稣出生的同一年跟踪某个日期。

我知道这只是一个理论问题,但很有趣的是知道是否有任何实际原因,为什么不使用 year = 0000。

最佳答案

传统的预兆公历中不存在零年。公元前 1 年 12 月 31 日之后是公元 1 月 1 日。

自公历公历时代开始以来,日期时间在内部表示为刻度。如果您愿意,您可以使用其他日历创建 DateTime。

The DateTime value type represents dates and times with values ranging from 00:00:00 (midnight), January 1, 0001 Anno Domini (Common Era) through 11:59:59 P.M., December 31, 9999 A.D. (C.E.) in the Gregorian calendar. Time values are measured in 100-nanosecond units called ticks, and a particular date is the number of ticks since 12:00 midnight, January 1, 0001 A.D. (C.E.) in the GregorianCalendar calendar (excluding ticks that would be added by leap seconds). For example, a ticks value of 31241376000000000L represents the date, Friday, January 01, 0100 12:00:00 midnight. A DateTime value is always expressed in the context of an explicit or default calendar. -- https://msdn.microsoft.com/en-us/library/system.datetime(v=vs.110).aspx



然而,ISO 8601 确实有一个零年,但它指的是公历中的 1BCE。见: https://en.wikipedia.org/wiki/ISO_8601#Years

关于.net - 为什么 DateTime.MinValue 0001-01-01T00 :00 instead of 0000-01-01T00:00?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32456889/

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