简单日期格式化的使用

简单日期格式化的使用

面试题: 有一个时间 2021年08月06日 11:11:11 往后 2天 14小时 49分 06秒后的时间是多少。

代码:

public static void main(String[] args) throws ParseException {
        // 目标: 学会使用SimpleDateFormat解析字符串时间成为日期对象。
        // 有一个时间 2021年08月06日 11:11:11 往后 2天 14小时 49分 06秒后的时间是多少。
        // 1、把字符串时间拿到程序中来
        String data = "2021年08月06日 11:11:11";
        // 2、把字符串时间解析成日期对象(本节的重点):形式必须与被解析时间的形式完全一样,否则运行时解析报错!
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date d = sdf.parse(data);

        // 3、往后走2天 14小时 49分 06秒
        long time = d.getTime() + (2L * 24 * 60 * 60 + 14 * 60 * 60 + 49 * 60 + 6) * 1000;

        // 4、格式化这个时间毫秒值就是结果
        System.out.println(sdf.format(time));
    }

补充理解(与面试题无关,仅对面试题起到加深理解的目的)

代码:

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

        // 2、格式化这个日期对象 (指定最终格式化的形式)
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss EEE a");
        // 3、开始格式化日期对象成为喜欢的字符串形式
        String rs = sdf.format(date);
        System.out.println(rs);
        System.out.println("----------------------------");

        // 4、格式化时间毫秒值
        // 需求:请问121秒后的时间是多少
        long time = System.currentTimeMillis() + 121 * 1000;
        String rs2 = sdf.format(time);
        System.out.println(rs2);


        System.out.println("------------解析字符串时间,下个代码---------------");
    }

补充代码2

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) 
posted @ 2022-07-04 11:27  Haziy  阅读(21)  评论(0编辑  收藏  举报