- java.util.Date类
- java.text.SimpleDateFormat 类
- java.time包中的日期类
/**
* 1)java.util.Date类
* 不是线程安全的
*/
//1) 无参构造 , 返回当前日期
Date date = new Date();
System.out.println( date ); //Fri Jan 14 15:20:03 CST 2022
//2) 通过构造方法指定一个从 1970-1-1 00:00:00 经过的毫秒数
long millis = System.currentTimeMillis(); //返回 (当前日期) 从 1970-1-1 00:00:00 经过的毫秒数
System.out.println( millis ); //1642144803843
Date date2 = new Date(millis);
System.out.println( date2 ); //Fri Jan 14 15:20:03 CST 2022
date2 = new Date(millis + 1000*62); //+62s
System.out.println( date2 );
//
System.out.println( date.after(date2)); //false
System.out.println( date.getTime() ); //返回日期距离1970-1-1 00:00:00 经过的毫秒数 //1642145026155 不同是因为执行代码也需要时间
/**
* 2)java.text.SimpleDateFormat 类
* 对日期进行格式化
* format()和parse()方法
*/
// 1) 创建Date对象 , 返回当前日期
Date date = new Date();
System.out.println(date); //Fri Jan 14 15:32:18 CST 2022
//2) 把Date转换为指定格式的字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss SSS");
System.out.println( sdf.format(date) ); //2022年01月14日 15:32:18 753
//3)把日期字符串转换为Date对象
String text = "2088-08-08 10:11:12";
//注意: 格式串一定要完全匹配日期字符串
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
date = sdf.parse(text) ; //把文本按指定的格式转换为字符串
System.out.println( date );
/**
* 3)java.time包中的日期类
* 线程安全的日期类,多线程环境中使用
* format()和parse()方法
*/
LocalDate date = LocalDate.now() ;
System.out.println( date ); //2022-01-14
LocalTime time = LocalTime.now();
System.out.println( time); //15:41:30.415
LocalDateTime dateTime = LocalDateTime.now();
System.out.println( dateTime ); //2022-01-14T15:41:30.415
//对日期格式化
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
//LocalDateTime有一个实例方法format对日期格式化
System.out.println( dateTime.format(formatter)); //2022年01月14日 15:41:30
//把字符串转换为日期
String text = "2088年08月08日 10:11:12";
//LocalDateTime有一个静态方法parse()可以把字符串转换为日期
dateTime = LocalDateTime.parse(text, formatter); //2088-08-08T10:11:12
System.out.println( dateTime );