LocalDateTime的使用
对象创建
//获取 LocalDateTime 对象 时间为系统当前时间精确到毫秒
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
格式化输出
//格式化输出 SSS 代表毫秒 格式化输出DateTimeFormatter的格式化语句必须精确到秒
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd号 HH:mm:ss:SSS E");
System.out.println(now.format(dtf));
指定LocalDateTime对象的时间点
//指定时间点
LocalDateTime of = LocalDateTime.of(2021, 1, 26, 7, 44);//LocalDateTime的参数必须精确到分
System.out.println(of);
字符串转换为LocalDateTime
利用DateTimeFormatter来转换
//字符串转为日期 样式必须和字符串匹配不能有多余符号
String date = "20210126";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDate parse = LocalDate.parse(date,dtf);
System.out.println(parse);
LocalDateTime的年月日获取
//时间值获取
LocalDateTime now = LocalDateTime.now();
System.out.println(now.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.CHINA));//获取该日本周星期几
System.out.println(now.getDayOfMonth());//该日本月第几天
System.out.println(now.getDayOfYear());//该日本年第几天
System.out.println(now.getHour());//第几个小时
System.out.println(now.getMonth().getDisplayName(TextStyle.FULL,Locale.CHINA));//第几个月,输出语言为中文
System.out.println(now.getMinute());//第几分钟
System.out.println(now.getYear());//获取年份
System.out.println(now.getSecond());//获取第几秒
LocalDateTime和 LocalDate LocalTime 三者相互转换
//LocalDateTime 和 LocalDate LocalTime 三者相互转换
LocalDateTime now = LocalDateTime.now();
LocalDate localDate = now.toLocalDate();//
System.out.println(localDate);
LocalTime localTime = now.toLocalTime();
System.out.println(localTime);
now = localDate.atTime(10, 5, 0);
now = localTime.atDate(localDate);
Date转换为LocalDateTime
//Date 转变成 LocalDateTime
Date date = new Date();
Instant instant = date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
//转变为LocalDateTime
LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
//转变为LocalDate
LocalDate localDate = instant.atZone(zoneId).toLocalDate();
//转变为LocalTime
LocalTime localTime = instant.atZone(zoneId).toLocalTime();
//转毫秒数
System.out.println(instant.toEpochMilli());
// ZonedDateTime 带有时区的 比起Localdatetime 多了个时区
ZonedDateTime now4 = ZonedDateTime.now();
System.out.println(now4);//2021-01-26T14:49:27.174+08:00[Asia/Shanghai]