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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值