第八章:日期时间常用类
1.1Date类
Date位于Java.util
包中,用于表示特定的时间点。
Date中常用的一些方法 | |
---|---|
Date() | 创建一个Date对象(new Date()) |
Date(long millis) | 使用给定毫秒创建一个Date对象 |
getTime() | 返回从1970年1月1日到今天为止的毫秒总和 |
getYear() | 从1900年开始计算到给定对象的日期的年数差 |
getMonth() | 返回0-11的月份(用下标计算的月份) |
getDate() | 返回一个月(当前对象)中的某一天(从1开始) |
getHours() | 返回小时数(当前对象) |
getMinutes() | 返回分钟数(当前对象) |
getSeconds() | 返回秒数(当前对象) |
setTime() | 设置(当前对象)为指定的毫秒数 |
setYear() | 设置年份(当前对象) |
setMonth() | 设置(当前对象)为指定的月份(设置的是下标0-11) |
setDate() | 设置当前时间(按毫秒计算) |
setHours() | 设置当前时间(小时) |
setMinutes() | 设置当前时间(分钟) |
setSeconds() | 设置秒数(当前对象) |
Date类中的很多方法都别标记为过时的,不推荐使用,原因是因为这些方法是非线程安全的,年份从1900年开始计算等。建议使用新的API,如java.time
包中的类
1.2格式化Date对象
要格式化一个Date对象,可以使用SimpleDateFormat
类来制定所需要的日期和时间格式。
方法 | 描述 |
---|---|
SimpleDateFormat(String pattern) | 用于创建一个 SimpleDateFormat 类 |
format(Date date) | 将给定的Date对象格式化为字符串,使用制定的格式 |
parse(String source) | 将给定的Date对象格式化为Date对象,是用制定的格式 |
applyPattern(String pattern) | 设置格式化模式,用于指定日期和时间的格式 |
toPattern() | 返回当前的格式化模式 |
1.3Calendar类
Calendar
类是Java中用于处理日期和时间的类,位于java.util
包中。它提供了一种比Date类更加灵活和功能强大的日期和时间操作方式
常用方法 | 解释 |
---|---|
Calendar.ERA | 对应纪元比如罗马儒略历中的 AD 或 BC ( 中文表示为 公元 或 公元前 ) |
Calendar.YEAR | 对应年份 |
Calendar.MONTH | 对应月份,月份从 0 开始计数,0 表示 January (一月),1 表示 February ( 二月 ) |
Calendar.DATE | 对应月份中的日期日期从 1 开始计数,有效范围为 1 ~ 31 。 |
Calendar.HOUR_OF_DAY | 对应一天当中的小时,小时从 0 开始计数,有效范围为 0 ~ 23 。 |
Calendar.MINUTE | 对应分钟,分钟从 0 开始计数,有效范围为 0 ~ 59 。 |
Calendar.SECOND | 对应秒,秒数从 0 开始计数,有效范围为 0 ~ 60 。(要注意闰秒) |
Calendar.MILLISECOND | 对应毫秒,毫秒数从 0 开始计数,有效范围为 0 ~ 999 。 |
Calendar.DAY_OF_MONTH | 对应月份中的日期,日期从 1 开始计数,有效范围为 1 ~ 31 。 |
Calendar.HOUR | 对应上午或下午的小时小时从 0 开始计数,有效范围为 0 ~ 11 。 |
Calendar.DAY_OF_WEEK | 对应星期用于指示一个星期中的某天。该字段可取的值可以是 SUNDAY 、 MONDAY 、 TUESDAY 、 WEDNESDAY 、 THURSDAY 、FRIDAY 和 SATURDAY 。 |
Calendar.DAY_OF_YEAR | 对应年份中的天数,指示当前年中的天数。一年中第一天的值为 1,最大值为 366 。 |
Calendar.AM | 表示一天午夜到中午之前的时间,即上午 |
Calendar.PM | 表示从中午到午夜之前的一天中的一段时间,即下午 |
1.4LocalDate类
LocalDate
类是Java中的一个日期类,它提供了处理日期的方法和功能。其于 java.time
包中,从JDK8开始引入
常用方法 | |
---|---|
public int getYear() | 用于获取年份 |
public int getMonthValue() | 用于获取月份 ( 取值范围是 1 ~ 12 ) |
public int getDayOfMonth() | 用于获取日期 ( 取值范围是 1 ~ 31 ) |
public DayOfWeek getDayOfWeek() | 用于获取星期 ( 返回类型为 DayOfWeek ) |
public boolean isLeapYear() | 用于判断 LocalDate 实例对应的年份是否是闰年 |
public int lengthOfYear() | 用于获取 LocalDate 实例对应的年份的总天数 |
public int lengthOfMonth() | 用于获取 LocalDate 实例对应的月份的总天数 |
1.5LocalTime类
LocalTime
类是JDK8引入的日期类,位于 java.time
包中,它用于表示时间,提供了处理时间相关操作的方法
常用的方法 | |
---|---|
public int getHour() | 用于获取小时 (取值范围为 0 ~ 23 ) |
public int getMinute() | 用于获取分钟 (取值范围为 0 ~ 59 ) |
public int getSecond() | 用于获取秒 (取值范围为 0 ~ 59 ) |
public int getNano() | 用于获取纳秒 (取值范围为 0 ~ 999999999 ) |
1.6LocalDateTime类
LocalDateTime
类是JDK8引入的日期类,位于 java.time
包中,它结合了 LocalDate
和 LocalTime
的功能,用于表示时间和日期的组合。
1.7互相转换
要在Date对象和LocalDate
对象之间进行相互转换,可以使用 Java.util.Date
和 java.time.LocalDate
类的方法。