欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Date

最编程 2024-07-09 21:43:32
...
Date类表示特定的时刻,精度为毫秒。

在JDK 1.1之前, Date类还有两个附加功能。 它允许将日期解释为年,月,日,小时,分钟和秒值。 它还允许格式化和解析日期字符串。 不幸的是,这些功能的API不适合国际化。 从JDK 1.1开始, Calendar类应该用于在日期和时间字段之间进行转换,而DateFormat类应该用于格式化和解析日期字符串。 不推荐使用Date中的相应方法。

尽管Date类旨在反映协调世界时(UTC),但它可能不会完全这样做,具体取决于Java虚拟机的主机环境。 几乎所有现代操作系统都假设在所有情况下1天= 24×60×60 = 86400秒。 然而,在UTC中,每年或每两年大约有一次,称为“闰秒”。 闰秒总是作为当天的最后一秒添加,并且总是在12月31日或6月30日。例如,由于增加了闰秒,1995年的最后一分钟长61秒。 大多数计算机时钟都不够精确,无法反映闰秒的区别。

一些计算机标准是根据格林威治标准时间(GMT)定义的,相当于通用时间(UT)。 GMT是该标准的“民用”名称; UT是同一标准的“科学”名称。 UTC和UT之间的区别在于UTC是基于原子钟的,而UT是基于天文观测,对于所有实际目的而言,这是一种无形的精细分裂。 由于地球的旋转不均匀(它以慢速减速并以复杂的方式加速),因此UT并不总是均匀流动。 根据需要将闰秒引入UTC,以便将UTC保持在UT1的0.9秒内,UT1是应用了某些更正的UT版本。 还有其他时间和日期系统; 例如,基于卫星的全球定位系统(GPS)使用的时间标度与UTC同步,但不会针对闰秒进行调整。 美国海军天文台(USNO)提供了一个有趣的进一步信息来源:

     http://www.usno.navy.mil/USNO
 

以及关于“时间系统”的材料:

     http://www.usno.navy.mil/USNO/time/master-clock/systems-of-time
 

它描述了各种不同的时间系统,包括UT,UT1和UTC。

在接受或返回年,月,日,小时,分钟和秒值的所有Date类方法中,使用以下表示:

  • y由整数y - 1900
  • 一个月由0到11的整数表示; 0是1月,1是2月,依此类推; 因此11月是12月。
  • 日期(月中的某天)以通常的方式由1到31的整数表示。
  • 小时由0到23之间的整数表示。因此,从午夜到凌晨1点的小时是小时0,从中午到下午1点的小时是小时12。
  • 一分钟由通常方式的0到59的整数表示。
  • 第二个由0到61的整数表示; 值60和61仅在闰秒发生,甚至仅在实际正确跟踪闰秒的Java实现中发生。 由于当前引入闰秒的方式,在同一分钟内发生两个闰秒的可能性极小,但此规范遵循ISO C的日期和时间约定。

在所有情况下,为这些目的提供方法的论据不必落在指定的范围内; 例如,日期可以指定为1月32日,并解释为2月1日。