zoukankan      html  css  js  c++  java
  • Java日期时间API系列21-----Jdk8中java.time包中的新的日期时间API类,xk-time时间转换,计算,格式化,解析的工具

      通过工作之余,对Java8中java.time包源码的不断学习,使用和总结,开发了xk-time,初步完成,欢迎试用和提出建议!

    xk-time

    xk-time is a datetime converter calculator and formatter tool set, based on java8 date and time API, thread safe, easy to use.

    时间转换,计算,格式化,解析的工具,使用java8,线程安全,简单易用,多达20几种常用日期格式化模板。

    0.为什么要开发这个工具?

    原因1:常见的DateUtil,往往将时间转换,计算,格式化,解析等功能都放在同一个类中,导致类功能复杂,方法太多,查找不方便。

    xk-time工具包,将上面功能按照时间转换,时间计算,时间格式化解析分成3个工具类:DateTimeConverterUtil,DateTimeCalculatorUtil,DateTimeFormatterUtil,每个类只做一个种功能,方便使用。

    原因2:java8以前的Date API设计不太好,往往会有线程安全问题

    使用java8api,Instant、LocalDate、LocalDateTime、LocalTime、ZonedDateTime等都是线程安全的类,而且增加了更丰富的方法,在此基础上开发相关工具类,线程安全,让使用更方便。

    1.依赖

    <dependency>  
      <groupId>com.github.xkzhangsan</groupId>    
      <artifactId>xk-time</artifactId>       
      <version>0.0.2</version>    
    </dependency>    
    

    2.日期转换 DateTimeConverterUtil

    包含Date、LocalDate、LocalDateTime、LocalTime、Instant和ZonedDateTime的互相转换
    注意,ZonedDateTime相关的转换,尤其是其他时间转ZonedDateTime,要注意时间和对应时区一致。

    3.日期计算工具类 DateTimeCalculatorUtil

    包括:
    (1)获取时间属性方法,get* 比如getYear(Date date) 获取年部分。
    (2)获取时间加操作方法,plus* 比如plusYears(Date date, long amountToAdd) 当前时间年增加amountToAdd值。
    (3)获取时间减操作方法,minus* 比如minusYears(Date date, long amountToAdd) 当前时间年减少amountToAdd值。
    (4)获取时间修改属性方法,with* 比如withYear(Date date, long newValue) 修改当前时间年值为newValue。
    (5)获取比较2个时间方法,between* 比如betweenYears(Date startInclusive, Date endExclusive) 比较2个时间,获取年部分。
    (6)其他常用方法,比如isLeapYear(Date date) 判断是否闰年。
    (7)时区转换计算方法,transform*,比如transform(ZonedDateTime zonedDateTime, String zoneId)
    (8)比较2个时间大小和相等方法,compare*,比如compare(Date date1, Date date2)

    4.日期格式化和解析DateTimeFormatterUtil

    包含常用日期格式如:
    yyyy-MM-dd
    HH:mm:ss
    yyyy-MM-dd HH:mm:ss
    yyyy-MM-dd'T'HH:mm:ssZ等等

    注意:格式化和解析ZonedDateTime 时区时间时,只能使用ISO开头 的Formatter,如ISO_DATE_FMT和YYYY_MM_DD_T_HH_MM_SS_Z_FMT
    因为,其他Formatter都绑定的是系统默认时区: private static final ZoneId ZONE = ZoneId.systemDefault();

    如果需要使用其他Formatter,可以使用withZone方法重新设置时区,比如:
    YYYY_MM_DD_HH_MM_SS_SSS_FMT.withZone(ZoneId.of("Europe/Paris")

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

  • 相关阅读:
    VS2010 安装MVC3
    MVC3教程之新手入门(转)
    MVC工作原理
    MVC开发人员必备的五大工具
    MVC3简介
    C#中各种字符类型的转化
    c#中设置Excel单元格格式
    浪子
    累了,再见
    利用HttpHandler处理自定义控件中需要引用大量js文件问题
  • 原文地址:https://www.cnblogs.com/xkzhangsanx/p/12332625.html
Copyright © 2011-2022 走看看