Java 日期和时间处理全解析
1. 引言
在编程领域,日期和时间的处理一直是一个具有挑战性的任务。早期的 Java 版本在处理日期和时间方面表现不佳,Java 程序员常常为简单的日期和时间计算而苦恼,比如计算从今天起 45 天后的日期,或者计算两个给定日期之间的天数。不过,Java 8 带来了全新的日期和时间处理框架——Date - Time API,它包含约 50 个新类和接口以及数百个新方法,极大地改善了日期和时间的处理方式。
2. 时间表示的思考
人类和计算机采用截然不同的方法来记录时间:
- 人类计时 :人类使用从秒开始,逐步递增到分钟、小时、天、周、月、年、十年和世纪的单位系统来测量时间。然而,人类时间单位的精确定义相当复杂,受到闰年、时区和夏令时等多种因素的影响。此外,大约每 18 个月,科学家会选择一天(通常是 6 月 30 日或 12 月 31 日)增加一秒,以应对地球自转速度的微小变化。
- 计算机计时 :计算机则简单地计算从给定起始时间开始经过的单位数量(通常是毫秒或纳秒),因此对计算机而言,时间只是一个数字。在 Java 中,机器时间设定为自 1970 年 1 月 1 日午夜以来经过的纳秒数,这一传统源于 Unix 操作系统。而微软 Windows 选择 1601 年 1 月 1 日作为时钟的起始日。
由于人类和计算机计时方式的差异,处理日期和时间的计算机程序变得有些棘手。例如,安排两个不同时区的人之间的电话会议,或者计算发票的到期日,都需要考虑诸多因素。不过,新的 Date - Time API 能够很好地处理这些细微差别。
超级会员免费看
订阅专栏 解锁全文
1203

被折叠的 条评论
为什么被折叠?



