• 【java日期格式化】


    1、SimpleDateFormat

    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class DateFormatTest {
        public static void main(String[] args) {
            /*
            yyyy 年份  注意和YYYY的区别,一般都用yyyy
            MM 月份
            dd 日
            HH 时(hh是十二小时制)
            mm 分
            ss 秒
            SSS 毫秒 1000毫秒代表1秒
             */
            Date dte = new Date(); //Sat Dec 19 17:54:57 CST 2020
            
            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd HH:mm");//2020/12/19 05:54
            SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");//2020/12/19 05:54:57
            SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//2020-12-19 05:54:57
    
            String str = sdf3.format(dte);
    
        }
    }

    2、DateTimeFormatter

    SimpleDateFormat是线程不安全的。
    所以现在一般都推荐使用LocalDateTime它是线程安全的,并且性能更好,代码更简洁,提供了更丰富的计算方法

    public class TimeTest {
        public static void main(String[] args) {
    //        LocalDate:只含年月日的日期对象
    //        LocalTime:只含时分秒的时间对象
    //        LocalDateTime:同时含有年月日时分秒的日期对象
    
            //1、LocalDate
            LocalDate now = LocalDate.now();
            LocalDate date = LocalDate.parse("2021-05-23");//2021-05-23
            //LocalDate localDate2 = LocalDate.parse("2021/05/23"); //错误:java.time.format.DateTimeParseException
            System.out.println("当前时间 = " + now);
            System.out.println("date = " + date);
            //输出: 当前时间 = 2021-05-23
    
            //2、LocalTime
            LocalTime localTime = LocalTime.now();
            System.out.println("localTime = " + localTime);
            //输出: localTime = 23:55:56.258
    
            //3、LocalDateTime
            LocalDateTime localDateTime = LocalDateTime.now();
            System.out.println("localDateTime = " + localDateTime);
            //输出: localDateTime = 2020-07-06T22:32:45.994
    
            //4、获取指定日期(参数依次 年、月、日)
            LocalDate localDate = LocalDate.of(2021, 5, 23);
            System.out.println("年月日 = " + localDate);
            //输出: 年月日 = 2021-05-23
    
            //5、获取指定时间(参数依次 时、分、秒、纳秒
            LocalTime localTimeOf = LocalTime.of(12, 24, 12, 4444);
            System.out.println("localTimeOf = " + localTimeOf);
            //输出: localTimeOf = 12:24:12.000004444
    
            //6、获取指定年月日,时分秒都有的日期(参数依次 年、月、日、时、分)
            LocalDateTime localDateTimeOf = LocalDateTime.of(2021, 7, 30, 12, 12);
            System.out.println("localDateTimeOf = " + localDateTimeOf);
            //输出: localDateTimeOf = 2021-07-30T12:12
    
            //7、日期+时间 组成 包含年月日,时分秒都有的日期
            LocalDateTime of = LocalDateTime.of(LocalDate.now(), LocalTime.now());
            System.out.println("of = " + of);
            //of = 2021-05-24T00:02:47.093
            
            //DateTimeFormatter
            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
            LocalDate fomatterLocalData = LocalDate.parse("2021-05-23",dateTimeFormatter);
            System.out.println("fomatterLocalData2 = " + fomatterLocalData);//fomatterLocalData2 = 2021-05-23
    
            DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            LocalDateTime fomatterLocalData2 = LocalDateTime.parse("2020-05-23 22:24:33",dateTimeFormatter2);
            System.out.println("fomatterLocalData2 = " + fomatterLocalData2);//fomatterLocalData2 = 2020-05-23T22:24:33

    /** ---补充--- */
         LocalDate localDate = LocalDate.parse("2021/07/28", DateTimeFormatter.ofPattern("yyyy/MM/dd"));
         LocalDate localDate1 = LocalDate.of(2021,10,10);
         System.out.println(localDate);
         System.out.println(localDate1);
         /** 比较时间 */
         boolean before = localDate.isBefore(localDate1);//localDate是否比localDate1早,早的话返回true
         /** 计算相差天数 */
         Period period = Period.between(localDate, localDate1);//period的getDays()获取的不是间隔天数,而是相隔多少月的多少天
         System.out.println("相差天数" +(localDate1.toEpochDay() - localDate.toEpochDay())); //74天
         System.out.println(localDate.until(localDate1, ChronoUnit.DAYS)); //localDate1 - localDate = 74 时间早的被减
        }
    }

     参考文章:LocalDateTime格式化日期

  • 相关阅读:
    COGS——T2084. Asm.Def的基本算法
    COGS——T1310. [HAOI2006]聪明的猴子
    python(4)- 简单练习:python实现购物车的优化
    Windows CE,你妈吗喊你在多核上玩玩
    xp宿主机和VMware下Ubuntu12.04共享文件夹
    xp主机用VMware9和10安装Ubuntu12.04后无法进入图像界面
    Ubuntu12.04 VMware Tools的安装
    linux 目录结构
    vmware-tools安装指南
    抱怨IT公司人才缺乏?留住现有人才方是正途
  • 原文地址:https://www.cnblogs.com/omgliyq/p/14160589.html
Copyright © 2020-2023  润新知