日期相关常用类

1.Date

  • java.util.Date 和 java.sql.Date
public class Code01 {
    public static void main(String[] args) {
        Date date = new Date();// import ---> java.util.Date;
        System.out.println(date);//Sat Jul 23 23:14:07 CST 2022
        System.out.println(date.toGMTString());//23 Jul 2022 15:15:56 GMT
        System.out.println(date.toLocaleString());//2022-7-23 23:15:56
        System.out.println(date.getYear());//122  1900+122=2022
        System.out.println(date.getTime());// 1658589512508 自1970-1-1 以来的毫秒数
        System.out.println(System.currentTimeMillis());//1658589512551 自1970-1-1 以来的毫秒数 本地方法

        java.sql.Date sqlDate = new java.sql.Date(1658589512551L);// sql.Date extends java.util.Date
        System.out.println(sqlDate);// 2022-07-23
    }
}

2.DateFormat 日期格式转换

public class Code02 {
    public static void main(String[] args) throws ParseException {
        // String 转 java.sql.Date
        java.sql.Date sqldate = java.sql.Date.valueOf("2022-07-23");
        // java.sql.Date 转 java.util.Date
        java.util.Date utilDate = sqldate;
        System.out.println(utilDate.toString());// 2022-07-23
        // 局限性大

        // 日期转换
        //public class SimpleDateFormat extends DateFormat
        DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//确定格式
        // 字符串转Date
        Date parseDate = df.parse("2022/7/23 23:33:33");
        System.out.println(parseDate.toString());// Sat Jul 23 23:33:33 CST 2022
        // 日期转字符串
        String strDate = df.format(new Date());
        System.out.println(strDate);//2022/07/23 23:35:58
    }
}

3.Calendar

public class Code03 {
    public static void main(String[] args) {
        // 创建Calendar对象的两种方式
        Calendar cal1 = new GregorianCalendar();
        Calendar cal2 = Calendar.getInstance();
        System.out.println(cal2);// java.util.GregorianCalendar[...] 结果太长不展示了

        // 常用方法Calendar.get()
        System.out.println(cal1.get(Calendar.YEAR));//获取年:2022
        System.out.println(cal1.get(Calendar.DAY_OF_WEEK));//获取当前周第几天:7
        System.out.println(cal1.getActualMinimum(Calendar.DATE));//获取当月最小天数:1
        System.out.println(cal1.getActualMaximum(Calendar.DATE));//获取当月最大天数:31
    }
}

4.LocalDateTime JDK1.8新增

public class Code04 {
    public static void main(String[] args) {
        // JDK1.8 新增API
        LocalDate localDate = LocalDate.now();
        System.out.println(localDate);// 2022-07-23
        LocalTime localTime = LocalTime.now();
        System.out.println(localTime);// 23:49:02.118
        LocalDateTime localDateTime = LocalDateTime.now();
        System.out.println(localDateTime);// 2022-07-23T23:49:02.118

        System.out.println(localDateTime.getYear());//2022
        System.out.println(localDateTime.getMonth());//JULY
        System.out.println(localDateTime.getDayOfWeek());//SATURDAY
                
        System.out.println(localDateTime.plusYears(5));//2027-07-23T23:53:37.983
        System.out.println(localDateTime.plusMonths(-5));//2022-02-23T23:53:37.983
    }
}

5.DateTimeFormatter 日期格式转换

  • 方式1(不常用)
public class Code05 {
    public static void main(String[] args) {
        // 创建DateTimeFormatter对象
        DateTimeFormatter df1 = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
        // 获取当前时间
        LocalDateTime now = LocalDateTime.now();
        // 时间转字符串
        String strDate = df1.format(now);
        System.out.println(strDate);//2022-07-23T23:57:05.65
        // 字符串转时间
        TemporalAccessor parse = df1.parse("2022-07-23T23:57:05.65");
        System.out.println(parse);//{},ISO resolved to 2022-07-23T23:57:05.650
    }
}
  • 方式2 (不好用)
public class Code06 {
    public static void main(String[] args) {
        DateTimeFormatter df2 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG);

        LocalDateTime now = LocalDateTime.now();
        String strDate = df2.format(now);
        System.out.println(strDate);//2022年7月24日 上午12时01分58秒

        TemporalAccessor p = df2.parse("2022年7月24日 上午12时01分58秒");
        System.out.println(p);//{},ISO resolved to 2022-07-24T00:01:58
    }
}
  • 方式3(常用)
public class Code07 {
    public static void main(String[] args) {
        DateTimeFormatter df3 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime now = LocalDateTime.now();
        String strDate = df3.format(now);
        System.out.println(strDate);//2022-07-24 00:05:53

        TemporalAccessor parse = df3.parse(strDate);
        System.out.println(parse);// {},ISO resolved to 2022-07-24T00:06:20
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值