zoukankan      html  css  js  c++  java
  • Java日期时间API系列12-----Jdk8中java.time包中的新的日期时间API类,日期格式化,常用日期格式大全

      通过Java日期时间API系列10-----Jdk8中java.time包中的新的日期时间API类的DateTimeFormatter, 可以看出java8的DateTimeFormatter完美解决了SimpleDateFormat线程安全问题。下面是关于DateTimeFormatter的使用实例,包括常用日期格式大全,

    以2020-01-01 00:00:00为例。

    package com.xkzhangsan.time.test;
    
    import java.time.LocalDateTime;
    import java.util.Date;
    
    import com.xkzhangsan.time.LunarDate;
    import com.xkzhangsan.time.converter.DateTimeConverterUtil;
    import com.xkzhangsan.time.formatter.DateTimeFormatterUtil;
    
    public class NewYearFormatTest {
    
        public static void main(String[] args) {
            LocalDateTime localDateTime = LocalDateTime.of(2020, 1, 1, 0, 0, 0);
            Date date = DateTimeConverterUtil.toDate(localDateTime);
            LunarDate lunarDate = LunarDate.from(localDateTime);
            System.out.println("=============================");
            System.out.println("Hello " + lunarDate.format());
            
            System.out.println("=============================");
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYY_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYY_MM_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYY_MM_CN_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYY_MM_EN_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYYMM_FMT));
            
            System.out.println("=============================");
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYY_MM_DD_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYY_MM_DD_CN_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYY_MM_DD_EN_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYY_MM_DD_POINT_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYY_MM_DD_E_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYYMMDD_FMT));
            
            System.out.println("=============================");
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYY_MM_DD_HH_MM_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYYMMDDHHMM_FMT));
            
            System.out.println("=============================");
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYY_MM_DD_HH_MM_SS_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYY_MM_DD_HH_MM_SS_CN_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYY_MM_DD_HH_MM_SS_A_CN_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYYMMDDHHMMSS_FMT));//22
            
            System.out.println("=============================");
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYY_MM_DD_HH_MM_SS_SSS_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.YYYYMMDDHHMMSSSSS_FMT));        
            
            System.out.println("=============================");
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.MM_DD_HH_MM_SS_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.MM_DD_HH_MM_SS_CN_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.MM_DD_HH_MM_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.MM_DD_HH_MM_CN_FMT));
            
            System.out.println("=============================");
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.MM_DD_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.MM_DD_CN_FMT));
            
            System.out.println("=============================");
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.HH_MM_SS_FMT));
            System.out.println(DateTimeFormatterUtil.format(date, DateTimeFormatterUtil.HHMMSS_FMT));
            System.out.println("=============================");
        }
    }

    输出:

    =============================
    Hello 己亥猪年 二〇一九年腊月初七 星期三
    =============================
    2020
    2020-01
    2020年01月
    2020/01
    202001
    =============================
    2020-01-01
    2020年01月01日
    2020/01/01
    2020.01.01
    2020-01-01 星期三
    20200101
    =============================
    2020-01-01 00:00
    202001010000
    =============================
    2020-01-01 00:00:00
    2020年01月01日 00:00:00
    2020年01月01日 00:00:00 上午
    20200101000000
    =============================
    2020-01-01 00:00:00.000
    20200101000000000
    =============================
    01-01 00:00:00
    01月01日 00:00:00
    01-01 00:00
    01月01日 00:00
    =============================
    01-01
    01月01日
    =============================
    00:00:00
    000000
    =============================

    注意:上面代码中的 DateTimeFormatterUtil.YYYY_FMT中的YYYY_FMT是定义的常量,不是真正的转换格式模板,原代码中是小写的y:yyyy。YYYY会出现bug。

    源码为:

        private static final String YYYY = "yyyy";
        /**
         * such as 2019
         */
        public static final DateTimeFormatter YYYY_FMT = DateTimeFormatter.ofPattern(YYYY).withZone(ZONE);
        /**
         * 根据 formatter格式化 date
         * @param date
         * @param formatter
         * @return
         */
        public static String format(Date date, DateTimeFormatter formatter){
            Objects.requireNonNull(formatter, "formatter");
            return DateTimeConverterUtil.toLocalDateTime(date).format(formatter);
        }

    源码地址:https://github.com/xkzhangsan/xk-time

  • 相关阅读:
    【php学习之路】微信公众帐号
    【php学习之路】php基础语法
    WCF全局异常处理
    【原创】【2015最新】微信公众平台开发手把手入门之一:缘起微信公众号(PHP,MYSQL, BAE)
    【原创】【2015最新】微信公众平台开发手把手入门之四:SVN和验证消息真实性(PHP,MYSQL, BAE)
    【原创】【2015最新】微信公众平台开发手把手入门之三:申请百度开放平台BAE云服务(PHP,MYSQL, BAE)
    【原创】【2015最新】微信公众平台开发手把手入门之二:开发者模式(PHP,MYSQL, BAE)
    微信公众号PHP简单开发流程
    angular+requirejs前端整合
    04、AngularJS的ng-bind、多个控制器和apply
  • 原文地址:https://www.cnblogs.com/xkzhangsanx/p/12122390.html
Copyright © 2011-2022 走看看