成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Joda日期工具類

wemallshop / 1762人閱讀

摘要:由于之前的,都是線程不安全的,所以就十分受歡迎。微笑工具類部分如下完整版點(diǎn)次鏈接如果不夠用可以自己添加年月日時(shí)分秒年月日年月日時(shí)分后面的工具類代碼還有很多,比如獲取一個(gè)季度的最后一天,諸如此類,就不貼了。

由于Java8 之前的Date,SimpleDateFormat都是線程不安全的,所以Joda time就十分受歡迎。即便是Java8新出了一套了線程安全類,我看了一下也差點(diǎn)寫的吐了血。。。。

如果你想直接拿去用,

請(qǐng)移步到Github下載。
我這里依賴的是joda2.10,用的是junit4做的測(cè)試。
Talk is cheap, show me the fucking code(微笑)

工具類部分如下

完整版點(diǎn)次鏈接

import org.joda.time.DateTime;
import org.joda.time.DateTimeConstants;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

import java.util.Date;


public class JodaDateUtil {
    public enum Pattern {
        //如果不夠用可以自己添加
        yyyy_MM("yyyy-MM"),
        yyyyMM("yyyyMM"),
        yyyy_MM_dd("yyyy-MM-dd"),
        yyyyMMdd("yyyyMMdd"),
        yyyy_MM_dd_HH_mm_ss("yyyy-MM-dd HH:mm:ss"),
        yyyyMMddHHmmss("yyyyMMddHHmmss"),
        yyyy_MM_dd_HH_mm_ss_zh("yyyy年MM月dd日HH時(shí)mm分ss秒"),
        yyyy_MM_dd_HH_mm_ss_SSS("yyyy-MM-dd HH:mm:ss.SSS"),
        yyyy_MM_dd_zh("yyyy年MM月dd日"),
        yyyy_MM_dd_HH_mm_zh("yyyy年MM月dd日HH時(shí)mm分");
        private String pattern;

        Pattern(String pattern) {
            this.pattern = pattern;
        }

        public String getPattern() {
            return pattern;
        }
    }
    public static Date str2date(String strTime, Pattern pattern) {
        DateTimeFormatter fmt = DateTimeFormat.forPattern(pattern.getPattern());
        DateTime dateTime = fmt.parseDateTime(strTime);
        return dateTime.toDate();
    }

    public static Date str2date(String time) {
        return str2date(time, Pattern.yyyy_MM_dd_HH_mm_ss);
    }

    public static String date2str(Date date, Pattern pattern) {
        DateTimeFormatter fmt = DateTimeFormat.forPattern(pattern.getPattern());
        DateTime dateTime = new DateTime(date);
        return fmt.print(dateTime);
    }

后面的工具類代碼還有很多,比如獲取一個(gè)季度的最后一天,諸如此類,就不貼了。

測(cè)試類內(nèi)容

完整版鏈接:

public class JodaDateUtilTest {
    public static final String yyyy_MM = "2014-09";
    public static final String yyyyMM = "201409";
    public static final String yyyy_MM_dd = "2014-09-01";
    public static final String yyyyMMdd = "20140901";
    public static final String yyyy_MM_dd_HH_mm_ss = "2014-09-01 12:30:20";
    public static final String yyyy_MM_dd_HH_mm_ss_SSS = "2014-09-01 12:30:20.100";
    public static final DateTime dateTime;

    static {
        dateTime = new DateTime(2018, 8, 30,
                12, 30, 20, 200);
    }

    @Test
    public void str2date() throws Exception {
        Date date = JodaDateUtil.str2date(yyyy_MM, JodaDateUtil.Pattern.yyyy_MM);
        System.out.println(date);
        date = JodaDateUtil.str2date(yyyy_MM_dd, JodaDateUtil.Pattern.yyyy_MM_dd);
        System.out.println(date);
        date = JodaDateUtil.str2date(yyyyMM, JodaDateUtil.Pattern.yyyyMM);
        System.out.println(date);
        date = JodaDateUtil.str2date(yyyyMMdd, JodaDateUtil.Pattern.yyyyMMdd);
        System.out.println(date);
        date = JodaDateUtil.str2date(yyyy_MM_dd_HH_mm_ss, JodaDateUtil.Pattern.yyyy_MM_dd_HH_mm_ss);
        System.out.println(date);
        date = JodaDateUtil.str2date(yyyy_MM_dd_HH_mm_ss_SSS, JodaDateUtil.Pattern.yyyy_MM_dd_HH_mm_ss_SSS);
        System.out.println(date);
    }


    @Test
    public void date2str() throws Exception {
        String str = JodaDateUtil.date2str(dateTime.toDate(), JodaDateUtil.Pattern.yyyy_MM);
        System.out.println(str);
        str = JodaDateUtil.date2str(dateTime.toDate(), JodaDateUtil.Pattern.yyyy_MM_dd);
        System.out.println(str);
        str = JodaDateUtil.date2str(dateTime.toDate(), JodaDateUtil.Pattern.yyyy_MM_dd_HH_mm_ss);
        System.out.println(str);
        str = JodaDateUtil.date2str(dateTime.toDate(), JodaDateUtil.Pattern.yyyy_MM_dd_HH_mm_ss_SSS);
        System.out.println(str);
    }

    @Test
    public void strToStr() throws Exception {
        String str = JodaDateUtil.strToStr(yyyy_MM_dd_HH_mm_ss_SSS, JodaDateUtil.Pattern.yyyy_MM_dd_HH_mm_ss_SSS,
                JodaDateUtil.Pattern.yyyy_MM);
        System.out.println(str);
        str = JodaDateUtil.strToStr(yyyy_MM_dd_HH_mm_ss_SSS, JodaDateUtil.Pattern.yyyy_MM_dd_HH_mm_ss_SSS,
                JodaDateUtil.Pattern.yyyy_MM_dd_zh);
        System.out.println(str);
        str = JodaDateUtil.strToStr(yyyy_MM_dd_HH_mm_ss_SSS, JodaDateUtil.Pattern.yyyy_MM_dd_HH_mm_ss_SSS,
                JodaDateUtil.Pattern.yyyy_MM_dd_HH_mm_zh);
        System.out.println(str);
        str = JodaDateUtil.strToStr(yyyy_MM_dd_HH_mm_ss_SSS, JodaDateUtil.Pattern.yyyy_MM_dd_HH_mm_ss_SSS,
                JodaDateUtil.Pattern.yyyy_MM_dd_HH_mm_ss_zh);
        System.out.println(str);

    }
}

另外Joda底層會(huì)幫我們緩存500個(gè)Formatter,應(yīng)該可以滿足正常的需求了。

另外,本人還將Joda與常見(jiàn)使用ThreadLocal包一層的SimpleDateFormatter,進(jìn)行了轉(zhuǎn)換比較,發(fā)現(xiàn)Joda比它快大約一個(gè)數(shù)量級(jí)。。。。。
如果你還用著ThreadLocal還是趕緊換了吧。

Github地址https://github.com/codercuixi..., 本人也是小白,希望與大家共同進(jìn)步,喜歡就follow,點(diǎn)贊哦

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/76696.html

相關(guān)文章

  • Java時(shí)間處理第三方包:Joda-Time

    摘要:在之前的版本,對(duì)日期時(shí)間的處理相當(dāng)麻煩,有些方法設(shè)計(jì)非常反人類。體驗(yàn)對(duì)比之前的處理方式,使用了之后,代碼整個(gè)神清氣爽了很多。 Joda-Time provides a quality replacement for the Java date and time classes.Joda-Time is the de facto standard date and time librar...

    Dongjie_Liu 評(píng)論0 收藏0
  • JodaTime開(kāi)源時(shí)間/日期庫(kù)

    摘要:開(kāi)源時(shí)間日期庫(kù)是很好的替代,另外中也推出了新的庫(kù),設(shè)計(jì)理念與相似。令時(shí)間和日期值變得易于管理操作和理解。格式化一個(gè)日期時(shí)間的具體域包括個(gè)年月日時(shí)分秒毫秒星期,分別用不同字母表示。 此前Java處理時(shí)間日期所使用的 Date 和 Calendar 被詬病不已,Calendar 的主要問(wèn)題對(duì)象可變,而像時(shí)間和日期這樣的類應(yīng)該是不可變的,另外其概念模型也有不明確的地方,月份計(jì)算從0開(kāi)始等等。...

    frolc 評(píng)論0 收藏0
  • 使用Gradle構(gòu)建Java項(xiàng)目

    摘要:要從頭開(kāi)始,請(qǐng)繼續(xù)使用構(gòu)建。文件夾應(yīng)包含項(xiàng)目運(yùn)行單元測(cè)試的報(bào)告。由于該項(xiàng)目尚未進(jìn)行任何單元測(cè)試,因此該報(bào)告無(wú)效。使用構(gòu)建項(xiàng)目是啟動(dòng)構(gòu)建的首選方式?,F(xiàn)在可用于構(gòu)建項(xiàng)目。概要恭喜您現(xiàn)在已經(jīng)創(chuàng)建了一個(gè)簡(jiǎn)單而有效的構(gòu)建文件,用于構(gòu)建項(xiàng)目。 本指南將引導(dǎo)您使用Gradle構(gòu)建一個(gè)簡(jiǎn)單的Java項(xiàng)目。 你要構(gòu)建什么 您將創(chuàng)建一個(gè)簡(jiǎn)單的應(yīng)用程序,然后使用Gradle構(gòu)建它。 你需要什么 大約15分...

    xiaokai 評(píng)論0 收藏0
  • 使用Maven構(gòu)建Java項(xiàng)目

    摘要:要從頭開(kāi)始,請(qǐng)繼續(xù)使用構(gòu)建。現(xiàn)在您已經(jīng)準(zhǔn)備好使用構(gòu)建項(xiàng)目,下一步是安裝。項(xiàng)目使用名為的文件定義。項(xiàng)目所屬的組或組織。默認(rèn)情況下,所有依賴項(xiàng)都作為依賴項(xiàng)確定范圍。概要恭喜您已經(jīng)為構(gòu)建項(xiàng)目創(chuàng)建了一個(gè)簡(jiǎn)單而有效的項(xiàng)目定義。 本指南將指導(dǎo)您使用Maven構(gòu)建一個(gè)簡(jiǎn)單的Java項(xiàng)目。 你要構(gòu)建什么 您將創(chuàng)建一個(gè)提供一天中時(shí)間的應(yīng)用程序,然后使用Maven構(gòu)建它。 你需要什么 大約15分鐘 最喜...

    mushang 評(píng)論0 收藏0
  • Joda Time API介紹(1)基本介紹

    摘要:比的更好用,并且完美兼容的時(shí)間點(diǎn)此訪問(wèn)用戶向?qū)У刂樊?dāng)前最新版本地址基本對(duì)象日期時(shí)間輸出結(jié)果本地日期時(shí)間輸出結(jié)果本地日期輸出結(jié)果本地時(shí)間輸出結(jié)果與相互轉(zhuǎn)換輸出結(jié)果與相互轉(zhuǎn)換 Joda Time : 比JDK的Date,Calendar更好用,并且完美兼容的時(shí)間API. 點(diǎn)此訪問(wèn)Joda Time User Guide 用戶向?qū)У刂? joda-time joda-time ...

    BakerJ 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<