持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第11天,点击查看活动详情
日常开发中你是否有遇到需要处理时间的问题,你又是怎么处理的呢?硬处理?格式化?各有千秋
-
LocalDate、LocalTime、LocalDateTime 相信大家多多稍稍都使用过吧。
LocalDate用法
- 获取当前时间,最大时间,最小时间
LocalDate now = LocalDate.now();
LocalDate max = LocalDate.MAX;
LocalDate min = LocalDate.MIN;
-
这样的用法依旧是那么简约。
-
自定义日期
LocalDate date = LocalDate.of(2019, 12, 24);
- 获取当前日期是所在年的第几天、月的第几天、当前星期
LocalDate now = LocalDate.now();
int year = now.getDayOfYear();
int month = now.getDayOfMonth();
DayOfWeek week = now.getDayOfWeek();
- 这个我们日常使用的频率应该还是挺高的。java也为我们做了日常的封装简化。
LocalDateTime
-
我们的二号选手已经上场了。两者好像并没有什么却别。通过名称去看感觉
LocalDataTime应该是更加高级电吧。 -
获取当前时间
LocalDateTime now = LocalDateTime.now();
- 指定日期
LocalDateTime now = LocalDateTime.now();
LocalDateTime time1 = now.withYear(2012);
LocalDateTime time2 = now.withMonth(12);
LocalDateTime time3 = now.withDayOfMonth(23);
LocalDateTime time4 = now.withHour(8);
LocalDateTime time5 = now.withMinute(8);
LocalDateTime time6 = now.withSecond(8);
- 怎么说呢?API操作也很简单吧
开发常用
-
下面我们来看看我们平时的操作日常吧。最多的应该就是转换操作了吧。经常需要将不同格式进行转换或者需要将时间进行不同维度的转换。如果用原来的Date进行转换估计一般程序员还搞不定吧。
-
比如说让你获取一天的最大最小时间。这个我们可以就自己去判断拼接就行了。但是这种做法先的很低级。不知道你是如何处理的。我都是通过格式算法去计算的。这样的代码看着自己就很舒服
public void date() {
LocalDateTime now = LocalDateTime.now(); // 获取当前星期的第一天和最后一天
LocalDateTime startTime = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
LocalDateTime endTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
log.info("当天最小时间:" + startTime); log.info("当天最大时间:" + endTime);
}
- 还有很多的操作,这里就不再一一展示了。具体的还需要我们自己去封装出符合自己的工具