日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 时间类 joda_Java日期类Joda-time的使用及性能对比

發布時間:2024/7/23 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 时间类 joda_Java日期类Joda-time的使用及性能对比 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在產品的性能優化過程中發現JDK的日期類Calendar使用起來太慢,于是找了替代方案,驚喜的發現Joda-time類庫,提供的API功能豐富,關鍵的是性能要比JDK的Calendar要高出許多。

1)日期的實例化//構造方法有很多,對比Calendar類,實例化性能高出一倍有余

//如果帶上時間戳作為構造函數的性能會更高

DateTime?dt=new?DateTime();

2)日期的格式化//實例化formatter對象

FastDateFormat?fdf?=?FastDateFormat.getInstance("yyyy-MM-dd?HH:mm:ss.SSS");

//創建日期,這里也可以用joda的DateTime對象

Date?d?=?new?Date();

fdf.format(d);

3)日期的解析//實例化formatter對象

FastDateFormat?fdf?=?FastDateFormat.getInstance("yyyy-MM-dd?HH:mm:ss.SSS");

//解析日期

fdf.parse("2016-04-23?11:23:45.234");

以上是幾個主要的API,更多的API還請自行研究,一定會有驚喜。

參考以下測試代碼:@Test

public?void?testCreateCalendar()?{

long?start?=?System.currentTimeMillis();

for?(int?i?=?0;?i?

Calendar?cal?=?Calendar.getInstance();

cal.set(Calendar.MILLISECOND,?(int)?start);

}

System.out.println(System.currentTimeMillis()?-?start);

}

@Test

public?void?testCreateJodaTime()?{

long?start?=?System.currentTimeMillis();

for?(int?i?=?0;?i?

new?DateTime(start);

}

System.out.println(System.currentTimeMillis()?-?start);

}

@Test

public?void?testParseDate()?throws?ParseException?{

long?start?=?System.currentTimeMillis();

SimpleDateFormat?sdf?=?new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss.SSS");

for?(int?i?=?0;?i?

sdf.parse("2016-04-23?11:23:45.234");

}

System.out.println(System.currentTimeMillis()?-?start);

}

@Test

public?void?testJodaParseDate()?throws?ParseException?{

long?start?=?System.currentTimeMillis();

FastDateFormat?fdf?=?FastDateFormat.getInstance("yyyy-MM-dd?HH:mm:ss.SSS");

for?(int?i?=?0;?i?

fdf.parse("2016-04-23?11:23:45.234");

}

System.out.println(System.currentTimeMillis()?-?start);

}

@Test

public?void?testFormatDate()?throws?ParseException?{

long?start?=?System.currentTimeMillis();

SimpleDateFormat?sdf?=?new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss.SSS");

Date?d?=?new?Date();

for?(int?i?=?0;?i?

sdf.format(d);

}

System.out.println(System.currentTimeMillis()?-?start);

}

@Test

public?void?testJodaFormatDate()?throws?ParseException?{

long?start?=?System.currentTimeMillis();

FastDateFormat?fdf?=?FastDateFormat.getInstance("yyyy-MM-dd?HH:mm:ss.SSS");

Date?d?=?new?Date();

for?(int?i?=?0;?i?

fdf.format(d);

}

System.out.println(System.currentTimeMillis()?-?start);

}

綜合比較下來,joda-time的性能差不多是calendar的1.5-2倍左右。

總結

以上是生活随笔為你收集整理的java 时间类 joda_Java日期类Joda-time的使用及性能对比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。