目录
LocalDate、LocalDateTime、LocalTime
String、Date、LocaDate、LocalTime、LocalDateTime 相互转换
Java8 中吸收了Joda-Time的精华,以一个新的开始为Java创建优秀的API。新的java.time中包含了所有关于本地时间(LocalDate)、本地时间(LocalTIme)、本地日期时间(LocalDateTime)、时区(ZonedDateTime)和持续时间(Duration)的类。下面简单介绍其使用方法。
LocalDate、LocalDateTime、LocalTime
获取当前时间
//获取当前时间 now()/now(ZoneId zone)
LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.now();
输出:
2021-07-03
20:09:18.472
2021-07-03T20:09:18.472
设置指定的时间
//of(): 设置指定的年、月、日、时、分、秒。没有偏移量
LocalDateTime localDateTime1 = LocalDateTime.of(2020, 10, 8, 1, 1, 1);
输出:
2020-10-08T01:01:01
//获取一天中小时间和最大时间
LocalDate localDate = LocalDate.now();
ystem.out.println(localDate);
LocalDateTime min = LocalDateTime.of(localDate, LocalTime.MIN);
System.out.println(min);
LocalDateTime max = LocalDateTime.of(localDate, LocalTime.MAX);
System.out.println(max);
输出:
2021-09-26
2021-09-26T00:00
2021-09-26T23:59:59.999999999
获取年/月/日
//getXxx()
System.out.println(localDateTime.getDayOfMonth());
System.out.println(localDateTime.getDayOfWeek()); //枚举
System.out.println(localDateTime.getMonth()); //枚举
System.out.println(localDateTime.getMonthValue());
System.out.println(localDateTime.getMinute());
输出:
3
SATURDAY
JULY
7
9
设置时间/日期(绝对值)
//设置时间/日期 withDayOfMonth()/withDayOfYear()/withMonth()/withYear()
LocalDate localDate1 = localDate.withDayOfMonth(5); //设置为本月第5天
System.out.println(localDate); // 不可变
System.out.println(localDate1);
输出:
2021-07-03
2021-07-05
设置偏移量
// 设置偏移量
LocalDateTime localDateTime3 = localDateTime.plusDays(3);
LocalDateTime localDateTime4 = localDateTime.minusDays(10);
System.out.println(localDateTime3);
System.out.println(localDateTime4);
输出:
2021-07-06T20:21:02.542
2021-06-23T20:21:02.542
Instant
时间线上的一个瞬时点,被用来记录应用程序中的事件时间戳。
now()
//日期变更子午线时间
Instant instant = Instant.now();
System.out.println(instant);
输出:
2021-07-03T12:21:02.543Z
添加偏移量(时区)
// 添加时间的偏移量--东八区时区
OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8));
System.out.println(offsetDateTime);
输出:
2021-07-03T20:21:02.543+08:00
获取时间戳(从1970年1月1日0时0分0秒开始的毫秒数)
long l = instant.toEpochMilli();
System.out.println(l);
输出:
1625314862543
根据毫秒时间戳返回Instant对象
Instant instant1 = Instant.ofEpochMilli(l);
System.out.println(instant1);
输出:
2021-07-03T12:21:02.543Z
DateTimeFormatter
ofPattern
静态方法,返回一个指定字符串格式的DateTimeFormatter
DateTimeFormatter dateTimeFormatter6 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
format格式化为字符串
DateTimeFormatter dateTimeFormatter6 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String format6 = dateTimeFormatter6.format(LocalDate.now());
System.out.println(format6);
输出:
2021-07-03
时间戳转为字符串
DateTimeFormatter dateTimeFo

最低0.47元/天 解锁文章
3007






