Java8————日期时间 API

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014745069/article/details/82383009

三个时间类

LocalDate、LocalTime、LocalDateTime

第一个只负责日期相关的处理,第二个负责时间相关的处理,第三个日期时间一起处理,其本质是前两者操作的再封装。

获取当前时间

LocalDateTime now = LocalDateTime.now();
//output : 2018-09-04T14:16:05.323

获取自定义时间

指定字符串:

LocalDateTime nationalDay = LocalDateTime.of(2018, Month.OCTOBER, 1, 14, 30);
// output : 2018-10-01T14:30

指定数字:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime someDay = LocalDateTime.parse("2018-10-01 14:30:30", formatter);
// output : 2018-10-01T14:30:30

日期时间格式化

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String nowStr = now.format(formatter);
// output : 2018-09-04 14:37:32

日期比较大小

// LocalDateTime.now() == 2018-09-04 14:42:59
boolean nowIsBefore = LocalDateTime.now().isBefore(nationalDay);// nationalDay == 2018-10-01T14:30:30
// output : true
boolean nowIsAfter = LocalDateTime.now().isAfter(nationalDay);// nationalDay == 2018-10-01T14:30:30
// output : false

日期相差多少年 | 月 | 天 | 小时 | 分钟 | 秒

// now = 2018-09-04T14:50:34.857 ; nationalDay == 2018-10-01T14:30:30
long diffYears = ChronoUnit.YEARS.between(LocalDateTime.now(), nationalDay);
// output : 0
long diffMonths = ChronoUnit.MONTHS.between(LocalDateTime.now(), nationalDay);
// output : 0
long diffDays = ChronoUnit.DAYS.between(LocalDateTime.now(), nationalDay);
// output : 26
long diffHours = ChronoUnit.HOURS.between(LocalDateTime.now(), nationalDay);
// output : 647
long diffMins = ChronoUnit.MINUTES.between(LocalDateTime.now(), nationalDay);
// output :38859
long diffSecs = ChronoUnit.SECONDS.between(LocalDateTime.now(), nationalDay);
// output : 2331188

获取分钟

最简单

int mins2 = LocalDateTime.now().getMinute();
// output : 26

最万能 (用于非默认语义,如天的分钟数)

long mins = LocalDateTime.now().getLong(ChronoField.MINUTE_OF_HOUR);
// output : 26
long mins = LocalDateTime.now().getLong(ChronoField.MINUTE_OF_DAY);
// output : 926

两个特殊枚举

MonthDayOfWeek

获取星期

LocalDateTime sunDay = LocalDateTime.of(2018, 9, 2, 0, 0);

DayOfWeek dayOfWeek = sunDay.getDayOfWeek();
// output : SUNDAY
int dayOfWeek = sunDay.getDayOfWeek().getValue();
// output : 7

获取月份

Month month = LocalDateTime.now().getMonth();
// output : SEPTEMBER
int month = LocalDateTime.now().getMonth().getValue();
// output : 9

获取年份

int year = LocalDateTime.now().getYear();
// output : 2018
Year year = Year.now();
// output : 2018

猜你喜欢

转载自blog.csdn.net/u014745069/article/details/82383009
今日推荐