一些日期的枚举类
# 一些日期的枚举类
有了这些枚举类,我们就再也不用自定义枚举类 (opens new window)了。
# DayOfWeek
一周 7 天的枚举类,每个星期的值都为 int(1 表示星期一,2 表示星期二……),
部分源码:
public enum DayOfWeek implements TemporalAccessor, TemporalAdjuster{
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY;
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
使用示例:
DayOfWeek d = DayOfWeek.of(4);
System.out.println(d.name()); //THURSDAY
System.out.println(d.getValue()); //4
1
2
3
2
3
更多可以看官网文档:DayOfWeek (Java Platform SE 8 ) (opens new window)
# Month
有 12 个值,分别是各个月份的英文,部分源码:
public enum Month implements TemporalAccessor, TemporalAdjuster {
JANUARY,
FEBRUARY,
MARCH,
APRIL,
MAY,
JUNE,
JULY,
AUGUST,
SEPTEMBER,
OCTOBER,
NOVEMBER,
DECEMBER;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
可以在创建 LocalDate 和 LocalDateTime 对象的时候,月份的参数使用月份枚举的方式传入。
LocalDateTime.of(2022, Month.JANUARY, 1,11,11,11);
1
# ChronoField
提供了更多的表示时间的字段,例如:
Enum Constant | 描述 |
---|---|
DAY_OF_MONTH | 天。当月第几天 |
DAY_OF_WEEK | 星期几,例如星期二。 |
DAY_OF_YEAR | 天。当年第几天 |
HOUR_OF_DAY | 一天中的小时,24 小时制,从 0 到 23。这是在标准的 24 小时数字时钟上观察到的小时 |
MILLI_OF_DAY | 当天的毫秒数,从 0 到(24 * 60 * 60 * 1,000) - 1 |
MILLI_OF_SECOND | 毫秒,从 0 到 999.此字段对于所有日历系统具有相同的含义 |
MINUTE_OF_DAY | 一天中的分钟,从 0 到(24 * 60) - 1 |
MINUTE_OF_HOUR | 分钟,从 0 到 59 |
一个枚举类,最常用的就是作为参数了,例如 LocateDateTime 有一个 get 方法,其作用是返回指定字段的 int 值:
LocalDateTime ldt = LocalDateTime.of(2022, 1, 1, 2, 3, 4, 56789);//2022-1-1 2:3:1
int i1 = ldt.get(ChronoField.MINUTE_OF_DAY); //123 指的是目前已经过了2*小时 + 3分钟= 123分钟了
int i2 = ldt.get(ChronoField.MINUTE_OF_HOUR); //3 指的是目前在当前这个小时内,已经过了3分钟
1
2
3
2
3
更多可参考 LocalDateTime (Java Platform SE 8 ) (opens new window)
上次更新: 2024/10/1 16:19:31