【Java】常用API(日期与时间)

这篇博客详细介绍了Java中的日期时间API,包括Date、SimpleDateFormat、Calendar的使用,以及Java 8新增的LocalDate、LocalTime、LocalDateTime、Instant、DateTimeFormatter、Period和Duration等类的功能和转换方法,强调了新API的不变性和易用性。
摘要由CSDN通过智能技术生成

Date

        Date类代表当前所在系统的日期时间信息

 Date的构造器

Date的常用方法

时间毫秒值→日期对象

public class DateDemo {
    public static void main(String[] args) {
        // 1、创建一个Date日期对象:代表了系统当前此刻日期时间信息
        Date d = new Date();
        System.out.println(d);

        // 2、获取时间毫秒值的形式:从19700101 0:0:0开始走到此刻的总毫秒值
        long time = d.getTime();  // long time = System.currentTimeMillis();
        System.out.println(time);

        System.out.println("-------------------");
        time += (60 * 60 + 123) * 1000;
        // 3、把时间毫秒值转换成日期对象
//        Date d2 = new Date(time);
//        System.out.println(d2);

        // 与上述代码逻辑一样,只是写法不同
        Date d2 = new Date();
        d2.setTime(time); // 修改日期对象成为time这个时间
        System.out.println(d2);
    }
}

1.日期对象如何创建,如何获取时间毫秒值?

        public  Date();

        public long getTime();

2.时间毫秒值怎么恢复成日期对象

        public Date(long time);

        public void setTime(long time); 

SimpleDateFormat

        可以去完成日期时间的格式化操作

样式:

        Date对象         →       2025年5月20日 13:14:00

        时间毫秒值      →       2025年5月20日 13:14:00

构造器

格式化方法

public class SimpleDateFormatDemo {
    public static void main(String[] args) {
        // 1、日期对象
        Date d = new Date();
        System.out.println(d);

        // 2、开始格式化:创建一个简单日期格式化对象
        // 注意:参数是格式化之后的时间形式,必须申明!
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");

        // 3、开始格式化日期对象成为字符串形式
        String result = sdf.format(d);
        System.out.println(result);

        System.out.println("--------格式化时间毫秒值----------");
        long time = d.getTime() + 123 * 1000;
        System.out.println(sdf.format(time));
    }
}

解析方法

 解析字符串时间成为日期对象

        2025年5月20日 13:14:00 → Date日期对象

public class SimpleDateFormatDemo {
    public static void main(String[] args) throws ParseException {
        // 目标: 学会使用SimpleDateFormat解析字符串时间成为日期对象。
        // System.out.println("-----------案例驱动式教学:学习解析字符串时间--------------");
        // 有一个时间 2022年05月27日 12:12:12 往后 2天 12小时 24分 36秒后的时间是多少。
        // 1、拿到程序中来
        String timeStr = "2022年05月27日 12:12:12";

        // 2、把字符串时间解析成日期对象(本节重点)
        // 严重注意:简单日期格式化对象的入参形式必须与被解析的时间的形式完全一致,否则后期解析失败!!
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date d = sdf.parse(timeStr); // 解析


        // 3、获取日期对象的时间毫秒值  + 2天14小时49分06秒
        long time = d.getTime() + (24L * 2 *60 * 60 + 12 * 60 *60 + 24 * 60 + 36) * 1000;

        // 4、格式化
        System.out.println("答案是:" +  sdf.format(time));
    }
}

Calendar

        Calendar代表了系统此刻日期对应的日历对象

        Calendar是一个抽象类不能直接创建对象

Calendar日历类创建日历对象的方法

Calendar常用方法

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值