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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Instant及LocalDateTime等使用方法

發布時間:2023/12/16 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Instant及LocalDateTime等使用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
歡迎關注微信公眾號:程序員小圈圈
原文首發于:www.zhangruibin.com
本文出自于:RebornChang的博客
轉載請標明出處^_^

Instant

在看阿里開發規范手冊時,看到了這點:

【強制】SimpleDateFormat 是線程不安全的類,一般不要定義為static變量,如果定義為static,必須加鎖,或者使用DateUtils工具類。 正例:注意線程安全,使用DateUtils。亦推薦如下處理:
private static final ThreadLocal df = new ThreadLocal() {
@Override
protected DateFormat initialValue() {
return new SimpleDateFormat(“yyyy-MM-dd”);
}
};
說明:如果是JDK8的應用,可以使用Instant代替Date,LocalDateTime代替Calendar,DateTimeFormatter代替Simpledateformatter,官方給出的解釋:simple beautiful strong immutable thread-safe。

上面提到了兩個知識點,Instant和LocalDateTime以及DateTimeFormatter。
細想之下之前對這個小知識還真的忽略了,所以來說下各個的用法。

Instant

通過查看源碼我們可以看到,Instant implements Temporal, TemporalAdjuster, Comparable, Serializable
注釋上寫著:This class is immutable and thread-safe.也就是線程安全。
簡單的來說, Instant 類代表的是某個時間(有點像 java.util.Date),它是精確到納秒的(而不是象舊版本的Date精確到毫秒)。如果使用納秒去表示一個時間則原來使用一位Long類型是不夠的,需要占用更多一點的存儲空間,實際上其內部是由兩個Long字段組成,第一個部分保存的是自標準Java計算時代(就是1970年1月1日開始)到現在的秒數,第二部分保存的是納秒數(永遠不會超過999,999,999)。

那么怎么使用呢?
看下面:

Instant instantNow = Instant.now(); System.out.println("now:"+instantNow);

上面我們可以看到,直接now出來的時間和我們現在的北京時間也就是東八區時間有出入,看下源碼注釋,調用這個now()會查詢一個system UTC clock,也就是:

Clock clock = Clock.systemUTC();

也就是說,如果你在中國的話,得到的不是中國(東八區)時間,那怎么才是中國時間呢?加八個小時就是北京時間:

Instant now = Instant.now().plusMillis(TimeUnit.HOURS.toMillis(8));

那怎么獲得1970-01-01T00:00:00Z.到現在的秒數及毫秒數呢?

System.out.println("秒數:"+now.getEpochSecond()); System.out.println("毫秒數:"+now.toEpochMilli());

LocalDateTime

如果說上面的instant是需要手動增加時間來確定自己的時區時間,那么LocalDateTime就不需要增加時間,使用方法與instant是有相似之處的:

LocalDateTime localDateTime = LocalDateTime.now();

而且還可以進行比較,轉化等操作,如下:

  • format時間
LocalDateTime localDateTime = LocalDateTime.now(); //當前時間 System.out.println("localDateTime:"+localDateTime); //format時間 System.out.println("localDateTimeFormat:"+localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
  • 比較時間
//定義localDateTime LocalDateTime localDateTime = LocalDateTime.now(); LocalDate now1 = LocalDate.now(); LocalTime now2 = LocalTime.now(); System.out.println("localDateTime:"+localDateTime); System.out.println("now1:"+now1); System.out.println("now2:"+now2); System.out.println("localDateTimeFormat:"+localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));//定義localDateTime2 LocalDateTime localDateTime2 = localDateTime.minus(23, ChronoUnit.MONTHS); localDateTime.atZone(ZoneId.systemDefault()); localDateTime2 = localDateTime2.withHour(3); localDateTime2 = localDateTime2.withYear(2019); localDateTime2 = localDateTime2.with(ChronoField.MONTH_OF_YEAR,3); System.out.println("localDateTime2:"+localDateTime2);//比較兩個時間 Duration duration = Duration.between(localDateTime,localDateTime2); System.out.println("比較日:"+duration.toDays()); System.out.println("比較時:"+duration.toHours()); System.out.println("比較分:"+duration.toMinutes());Period period = Period.between(localDateTime.toLocalDate(),localDateTime2.toLocalDate()); System.out.println("比較年:"+period.getYears()); System.out.println("比較月:"+period.getMonths()); System.out.println("比較日:"+period.getDays());
  • 轉化
//互相轉化 Date date = Date.from(localDateTime2.atZone(ZoneId.systemDefault()).toInstant()); LocalDateTime dateTime = LocalDateTime.ofInstant(date.toInstant(),ZoneId.systemDefault());localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

稍微提下LocalDate及LocalTime,這兩個欠著是不帶具體的時分秒只有年月日,后者是不帶具體的年月日只有時分秒。

DateTimeFormatter

強力的時間類型模式化工具,有多強呢?
看看下面:

//定義新的時間 LocalDateTime newTime = LocalDateTime.now(); //定義多種格式化類型 DateTimeFormatter[] formatters = new DateTimeFormatter[]{// 直接使用常量創建DateTimeFormatter格式器//第1種 DateTimeFormatter.ISO_LOCAL_DATE,//第2種DateTimeFormatter.ISO_LOCAL_TIME,//第3種DateTimeFormatter.ISO_LOCAL_DATE_TIME,//第4種// 使用本地化的不同風格來創建DateTimeFormatter格式器 DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL, FormatStyle.MEDIUM),//第5種DateTimeFormatter.ofLocalizedTime(FormatStyle.LONG),//第6種// 根據模式字符串來創建DateTimeFormatter格式器 DateTimeFormatter.ofPattern("Gyyyy%%MMM%%dd HH:mm:ss") }; // 依次使用不同的格式器對LocalDateTime進行格式化 System.out.println("開始使用DateTimeFormatter進行格式化"); for(int i = 0 ; i < formatters.length ; i++){// 下面兩行代碼的作用相同System.out.println(newTime.format(formatters[i]));System.out.println(formatters[i].format(newTime)); }

控制臺輸出:

開始使用DateTimeFormatter進行格式化 2019-09-23 2019-09-23 15:42:47.06 15:42:47.06 2019-09-23T15:42:47.06 2019-09-23T15:42:47.06 2019年9月23日 星期一 15:42:47 2019年9月23日 星期一 15:42:47 下午03時42分47秒 下午03時42分47秒 公元2019%%九月%%23 15:42:47 公元2019%%九月%%23 15:42:47

OK,對于這幾點的簡單介紹到這里就差不多了,有興趣的小伙伴可以自行深入研究~~
,博主的微信公眾號
程序員小圈圈’開始持續更新了喲~~
識別二維碼或者直接搜索名字 ‘程序員小圈圈’ 即可關注本公眾號喲~~
不只是有技術喲~~
還有很多的學習娛樂資源免費下載哦~~
還可以學下教育知識以及消遣娛樂喲~~
求關注喲~~

總結

以上是生活随笔為你收集整理的Instant及LocalDateTime等使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品一二三四区 | 91久久一区二区三区 | 国产乱妇无码大片在线观看 | 四虎黄色网址 | 色多多在线看 | 丁香婷婷社区 | 亚洲天堂免费观看 | 波多野结衣先锋影音 | 国产第一区第二区 | 伊人国产女 | 一级特黄av | 精品无码久久久久成人漫画 | 先锋影音av资源网 | 日本乱论视频 | 欧美一级黄色片 | 日本一区二区在线不卡 | 国产精品不卡在线 | 香港三日本8a三级少妇三级99 | 欧美午夜精品一区二区 | 全球av在线 | 神马久久午夜 | 91香蕉视频官网 | sm久久捆绑调教精品一区 | 成人动漫一区二区 | 亚洲第一成网站 | 欧洲女女同性videoso | av片免费 | 亚洲午夜免费视频 | 神马影院午夜伦理 | 国产精品视频一二区 | 91久久综合亚洲鲁鲁五月天 | 99无码熟妇丰满人妻啪啪 | 黄色wwww| 狠狠躁夜夜躁av无码中文幕 | 欧美日韩在线免费观看 | 国产白浆一区二区 | 五月中文字幕 | 亚洲国产精品久久久久婷蜜芽 | 欧亚乱熟女一区二区在线 | 一级片一级片 | 中文字幕 欧美激情 | av网址在线免费观看 | 久久无码国产视频 | 国产视频欧美视频 | 亚洲无线观看 | 操批网站| 久久亚洲熟女cc98cm | 国产91亚洲 | 四虎国产视频 | www四虎com | 免费一二三区 | 伊人天天 | 久久久精品视 | 开心色婷婷| 草草影院在线 | 日韩高清免费观看 | 精品一区亚洲 | 环太平洋3:泰坦崛起 | 蜜桃精品久久久久久久免费影院 | 欧美黄片一区 | 先锋资源在线视频 | 日本免费一区二区三区视频 | 亚洲区自拍偷拍 | 青青草在线视频免费观看 | 欧美性视频网站 | 国产a线| 国精产品一品二品国精品69xx | 欧美日韩视频一区二区三区 | 国产大屁股喷水视频在线观看 | 欧美性受xxxx黑人xyx性 | 快色视频 | 国产chinese男男gaygay视频 | 91福利一区 | hs视频在线观看 | 4438亚洲| 99热在线观看 | 羞羞色院91蜜桃 | 国产精品111 | 男人疯狂高潮呻吟视频 | 国产av无码专区亚洲a∨毛片 | 黑人巨茎大战欧美白妇 | 欧美在线视频播放 | 欧美日韩免费观看一区=区三区 | 女人的天堂av | 国产精品久久精品三级 | 玉势 (1v1 高h) | 亚洲欧美日韩一区二区三区四区 | 日韩69视频 | 91久久影院 | 蜜桃av噜噜一区二区三区小说 | 九九热在线观看视频 | 成品短视频泡芙 | wwwxxoo| 精品视频一区二区在线观看 | 中文字幕女同 | 好吊妞视频一区二区三区 | 精品免费在线视频 | 69久久久久久| 色牛av|