日期API的优点
Date如果不格式化,输出的日期可读性差;而java8的时间类直接输出可读性好
Date存在线程安全问题,而java8的时间类都是线程安全的
JDK8新增日期类:LocalDate:年、月、日
LocalTime:时、分、秒
LocalDateTime:年、月、日、时、分、秒
Instant:代表的是时间戳
DateTimeFormatter 用于时间的格式化和解析
Duration:计算两个"时间"间隔
Period:计算两个"日期"间隔
LocalDateTime
没有构造方法,常用下面两个静态方法获取时间
public static LocalDateTime now()
从默认时区中的系统时钟获取当前时间
public static LocalDateTime of(int year,int month,int dayMonth,int hour,int minute,int second)
从年、月、日、小时、分钟和秒获得LocalDateTime的实例,将纳秒设置为零
package com.aynu;
// 没有构造方法,常用下面两个静态方法获取时间
//
// public static LocalDateTime now()
//
// 从默认时区中的系统时钟获取当前时间
//
// public static LocalDateTime of(int year,int month,int dayMonth,int hour,int minute,int second)
//
// 从年、月、日、小时、分钟和秒获得LocalDateTime的实例,将纳秒设置为零
import java.time.LocalDateTime;
public class LocalDateTimeDemo {
public static void main(String[] args) {
//public static LocalDateTime now()
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
//2023-04-17T20:31:06.295909200
// T表示时间开始,精确到纳秒
//1秒=1000毫秒
//1毫秒=1000微秒
//1微秒=1000纳秒
//public static LocalDateTime of(int year,int month,int dayMonth,int hour,int minute,int second)
LocalDateTime of = LocalDateTime.of(2023, 4, 17, 20, 33, 30);
System.out.println(of);
//2023-04-17T20:33:30
}
}
2023-04-17T20:35:16.934258500
2023-04-17T20:33:30
LocalDateTime格式化和解析
格式化:
String format(DateTimeFormatter formatter): 使用指定的格式化程序格式化此日期时间
解析:
static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter)
使用特定格式化程序从文本字符串中获取LocalDateTime的实例
DateTimeFormatter:没看到构造方法,用下面的静态方法获取日期格式化对象
public static DateTimeFormatter ofPattern(String pattern):使用指定的模式创建格式化程序
package com.aynu;
//格式化:
// String format(DateTimeFormatter formatter): 使用指定的格式化程序格式化此日期时间
//
// 解析:
// static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter)
// 使用特定格式化程序从文本字符串中获取LocalDateTime的实例
//
// DateTimeFormatter:没看到构造方法,用下面的静态方法获取日期格式化对象
// public static DateTimeFormatter ofPattern(String pattern):使用指定的模式创建格式化程序
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class LocalDateDemo1 {
public static void main(String[] args) {
//String format(DateTimeFormatter formatter)
// LocalDateTime now= LocalDateTime.now();
// //public static DateTimeFormatter ofPattern(String pattern):使用指定的模式创建格式化程序
// DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// String format = now.format(dateTimeFormatter);
// System.out.println(format); //2023-04-17 21:03:22
String format = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println(format);
//static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter)
String s="2023-04-17 10:46:20";
// String s="2023/04/17 10:46:20";
LocalDateTime parse = LocalDateTime.parse(s, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
// LocalDateTime parse = LocalDateTime.parse(s, DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"));
System.out.println(parse); //2023-04-17T10:46:20
}
}
2023-04-17 21:10:08
2023-04-17T10:46:20