提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Java时间类
java.util.Date
Date d = new Date(); // 默认当前时间
System.out.println(d); // Tue Apr 19 10:41:05 CST 2022,自动调用toSttring()方法
System.out.println(d.toLocaleString()); // 2022-4-19 10:42:29,方法已过时
System.out.println(d.getYear() + 1900); // 距离1900年的时间
// 获取当前时间的毫秒数
// 一般使用currentTimeMillis,静态方法,使用类名调用
// 一般是用来统计算法的执行时间
System.out.println(System.currentTimeMillis());
java.sql.Date
java.util.Date的子类,不包含空构造器
public class Date extends java.util.Date
Date date = new Date(1650336258636L);
System.out.println(date);
// java.util.Date中的时间:年月日时分秒
// java.sql.Date中时间:年月日
// java.sql.Date 和 java.util.Date转换
// 1.向下转型
java.util.Date d = new Date(date.getTime());
Date subD = (Date) d;
System.out.println(subD);
// String -> sql.Date
// 数据格式:"yyyy-[m]m-[d]d"
Date date2 = Date.valueOf("2019-3-8");
System.out.println(date2);
SimpleDateFormat
字符串格式化类
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// String -> Date
try {
Date d = sf.parse("2022-4-6 12:23:26");
System.out.println(d); // Wed Apr 06 12:23:26 CST 2022
} catch (ParseException e) {
e.printStackTrace();
}
// Date -> String
String format = sf.format(new Date());
System.out.println(format);
日期类:Calendar
// Calendar 是一个抽象类
Calendar calendar = new GregorianCalendar();
Calendar calendar1 = Calendar.getInstance();
// System.out.println(calendar1);
// 常用方法
System.out.println(calendar1.getTime());
System.out.println(calendar1.get(Calendar.YEAR));
calendar1.set(Calendar.YEAR, 10);
System.out.println(calendar1.get(Calendar.YEAR));
日期类的问题:时间数值可以被set修改,不能保证时间的不可变性。
JDK1.8新引入的时间类
日期类
// 年月日
LocalDate localDate = LocalDate.now();
System.out.println(localDate);
// 时分秒
LocalTime localTime = LocalTime.now();
System.out.println(localTime);
// 年月日:时分秒
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime);
// 自定义时间
LocalDate of = LocalDate.of(2022, 4, 12);
System.out.println(of);
System.out.println("-----------------------------");
// 生成新的对象,不会修改原来的对象
LocalDate date = localDate.withYear(2019);
System.out.println(localDate);
System.out.println(date);
格式化类 DateTimeFormatter
// 使用预定义格式, DateTimeFormatter中的常量有预定义格式
DateTimeFormatter df = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
LocalDateTime ld = LocalDateTime.now();
String str = df.format(ld);
System.out.println(str); // 2022-04-19T12:05:34.277
System.out.println("-----------------------------");
// 自定义格式 ofPattern
DateTimeFormatter df1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime lo = LocalDateTime.now();
String str1 = df1.format(lo);
System.out.println(str1);