date笔记

1.获取时间毫秒数
 @Test
    //获取时间毫秒数
    public void test00(){
        //1 系统类
        long millis = System.currentTimeMillis();
        System.out.println(millis);
        // 2 日期对象
        Date date = new Date();
        long time = date.getTime();
        System.out.println(time);

        //标准时间 UTC GMT
        //1900-01-01 00:00:00
        //1970-01-01 00:00:00
    }

输出结果为

1649944805490
1649944805490
2. Date对象获取时间年 月 日 时 分 秒 周一到周日
 @Test
    public void test01(){
        //日期字符串
        StringBuilder dateText = new StringBuilder();
       //获取日期对象
        Date date = new Date();
        // 年 月 日 时 分 秒 星期
        //getYear()从1900年开始
        int year = date.getYear() + 1900;
        dateText.append(year + "年");

        //获取月
        int month = date.getMonth() + 1;
        dateText.append(month < 10 ? "0" + month + "月" : month + "月");

        //获取日
        int dayOfMonth = date.getDate();
        dateText.append(dayOfMonth < 10 ? "0" + month + "日" : dayOfMonth + "日 ");

        //获取时
        int hours = date.getHours();
        dateText.append(hours < 10 ? " 0" + hours + "时" : + hours + "时");

        //获取分
        int minutes = date.getMinutes();
        dateText.append(minutes < 10 ? "0" + minutes + "分" : minutes + "分");

        //获取秒
        int seconds = date.getSeconds();
        dateText.append(seconds < 10 ? "0" + seconds + "秒" : seconds + "秒 ");

        //获取星期
        int dayOfWeek = date.getDay();
        String weekDay = "星期";
        switch (dayOfWeek) {
            case 1 -> weekDay += "一";
            case 2 -> weekDay += "二";
            case 3 -> weekDay += "三";
            case 4 -> weekDay += "四";
            case 5 -> weekDay += "五";
            case 6 -> weekDay += "六";
            default -> weekDay += "日";
        }
        dateText.append(weekDay);
        System.out.println(dateText);
    }

输出结果为

20220414220140秒 星期四
3.Date对象获取日期所有数据
@Test
    public void test02(){
        Date date = new Date();
        System.out.println(date);

        //实例化一个时间字符串格式对象  并传入时间字符串模板
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
        //将日期对象根据之前的时间字符串模板格式化为时间字符串
        String format = dateFormat.format(date);
        System.out.println(format);


        String source = "1983-11-22 20:30:00";
        try {
            Date parse = dateFormat.parse(source);
            System.out.println(parse);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

输出结果为

Thu Apr 14 22:11:20 CST 2022
2022-04-14 22:11:20
Tue Nov 22 20:30:00 CST 1983
4.日期比较
@Test
    //日期比较
    public void test03() {

        //实例化一个时间字符串格式对象  并传入时间字符串模板
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");


        String text01 = "1983-11-22 20:30:00";
        String text02 = "1988-01-02 20:30:00";
        try {
            Date date01 = dateFormat.parse(text01);
            Date date02 = dateFormat.parse(text02);
            System.out.println(date01.before(date02));
            System.out.println(date02.after(date01));
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

输出结果为

true
true

5.将当前系统默认时区转换为格林威治时区
 @Test
    //将当前系统默认时区转换为格林威治时区
    public void test04(){
        //日期对象
        Date date = new Date();
        System.out.println(date);
        String gmtString = date.toGMTString();
        System.out.println(gmtString);
    }

输出结果为

Thu Apr 14 22:14:46 CST 2022
14 Apr 2022 14:14:46 GMT
6.时区转换
@Test
    //时区转换
    public void test05(){
        //输出当前系统默认时区
        System.out.println(TimeZone.getDefault());
        //定义时间字符串格式化模板
        SimpleDateFormat tokyoSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //格式化的时候设置时区
        tokyoSdf.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo"));
        //获取当前时间对象
        Date tokyoDate = new Date();
        //将当前时间对象使用定义好的时间字符串模板格式化
        String tokyoDateText = tokyoSdf.format(tokyoDate);
        System.out.println(tokyoDateText);
    }
    
    

输出结果为

2022-04-14 23:16:11
7.将时间毫秒数转换为Date日期
 @Test
    //将时间毫秒数转换为date日期
    public void test06(){
        long time = 1649941016620L;
       // time -= 1000*60*60*24;
        Date date = new Date();
        System.out.println(date);
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
        dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
        String format = dateFormat.format(date);
        System.out.println(format);
    }

输出结果为

Thu Apr 14 22:17:49 CST 2022
2022-04-14 22:17:49
8.日期工具类封装

首先声明三个属性

 /**
     * 默认时区
     */
    private final static String timeZone = "Asia/Shanghai";
    /**
     * 默认时间字符串模板
     */
    private final static String pattern = "yyy-MM-dd HH:mm:ss";
. 没有时区
    /**
     * 将日期对象格式化为字符串
     * @param date  Date对象
     * @param pattern  日期格式化字符串模板
     * @return         Date对象格式化后的日期字符串
     */
    public static String format(Date date,  String pattern){
        return format(date,timeZone,pattern);
    }

 @Test
    public void format() {
        System.out.println (BaseDateUtil.format(new Date(),  "yyy-MM-dd HH:mm:ss"));
       
    }

输出结果为

2022-04-14 22:59:57
. 没有时区和模板
    /**
     * 将日期对象格式化为字符串
     * @param date  Date对象
     * @return         Date对象格式化后的日期字符串
     */
    public static String format(Date date){
        return format(date,timeZone,pattern);
    }

@Test
    public void format() {
        
        System.out.println (BaseDateUtil.format(new Date()));

    }

输出结果为

2022-04-14 22:59:57
. 将日期字符串解析为日期对象
 /**
     * 将日期字符串解析为日期对象
     * @param text  日期字符串
     * @param timeZone  时区
     * @param patten  日期格式化字符串模板
     * @return  日期字符串解析后日期对象
     * @throws ParseException
     */
    public static  Date parse(String text, String timeZone, String patten) throws ParseException {
        SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
        dateFormat.setTimeZone(TimeZone.getTimeZone(timeZone));
        return dateFormat.parse(text);
    }

 @Test
    public void parse() {
        try {
            System.out.println (BaseDateUtil.parse("2022-04-14 22:39:09", "Asia/Shanghai", "yyy-MM-dd HH:mm:ss"));
           
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

输出结果为

Thu Apr 14 22:39:09 CST 2022
.没有时区
/**
     * 将日期字符串解析为日期对象
     * @param text  日期字符串
     * @param patten 日期格式化字符串模板
     * @return   日期字符串解析后日期对象
     * @throws ParseException
     */
    public static  Date parse(String text,  String patten) throws ParseException {
        return parse(text,timeZone,patten);
    }


 @Test
    public void parse() {
        try {
         
            System.out.println (BaseDateUtil.parse("2022-04-14 22:39:09",  "yyy-MM-dd HH:mm:ss"));
        
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

输出结果为

Thu Apr 14 22:39:09 CST 2022
.没有时区和模板
 /**
     * 将日期字符串解析为日期对象
     * @param text  日期字符串
     * @return   日期字符串解析后日期对象
     * @throws ParseException
     */
    public static  Date parse(String text) throws ParseException {
        return parse(text,timeZone,pattern);
    }

@Test
    public void parse() {
        try {
            
            System.out.println (BaseDateUtil.parse("2022-04-14 22:39:09"));
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

输出结果为

Thu Apr 14 22:39:09 CST 2022
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值