Java8(七) 新的DateTime API

来源:https://www.cnblogs.com/lyldelove/archive/2020/07/29/13394909.html
-Advertisement-
Play Games

新的日期時間API 1 日期/時間 LocalDate:沒有時區的日期 LocalTime:沒有時區的時間 LocalDateTime:沒有時區的日期時間 ZonedDateTime:有時區的日期時間 時區/ZoneId ZoneId.getAvailableZoneIds()獲取所有可用的Zone ...


新的日期時間API

1 日期/時間

LocalDate:沒有時區的日期

LocalTime:沒有時區的時間

LocalDateTime:沒有時區的日期時間

ZonedDateTime:有時區的日期時間

時區/ZoneId

ZoneId.getAvailableZoneIds()獲取所有可用的ZoneId。

偏移量/ZoneOffset

偏移量指的是偏移UTC時區的時分秒。

如:+08:00的意思時超前於UTC八個小時,而 -05:45 意思是落後於UTC五小時四十五分鐘。

因為有著夏/冬令時的區分,所以偏移量會發生變化。

獲取日期時間信息
LocalDateTime localDateTime = LocalDateTime.now();
//很多,不一一寫出來
localDateTime.getXXX();
日期時間調整
  • 加減
LocalDateTime localDateTime = LocalDateTime.now();
//很多,不一一寫出來
localDateTime.minusXXX();
  • 修改
LocalDateTime localDateTime = LocalDateTime.now();
//很多,不一一寫出來
localDateTime.withXXX();
日期時間比較
LocalDateTime time1 = LocalDateTime.now();
LocalDateTime time2 = time1.minusDays(1);
int compare = time1.compareTo(time2);
boolean after = time1.isAfter(time2);
boolean before = time1.isBefore(time2);
boolean equal = time1.isEqual(time2);
格式化
LocalDateTime time = LocalDateTime.now();
time.format(DateTimeFormatter.ofPattern("yyyyMM"));
TemporalAdjuster
LocalDateTime time = LocalDateTime.now();
time.with(TemporalAdjusters.xxx());
//dayOfWeekInMonth() – 一周中的某一天,例如,三月中第二個星期二
//firstDayOfMonth() – 當前月的第一天
//firstDayOfNextMonth() – 下一個月的第一天
//firstDayOfNextYear() – 下一年的第一天
//firstDayOfYear() – 當年的第一天
//lastDayOfMonth() – 當月的最後一天
//nextOrSame() – 下一次或當天發生的一周中的某天

2 時間戳與時間段

Instant

時間戳。

表示Unix元年(傳統的設定為UTC時區1970年1月1日午夜時分)開始所經歷的時間。

Instant instant = Instant.now();
long epochSecond = instant.getEpochSecond();//秒數
long l = instant.toEpochMilli();//毫秒數
System.out.println(epochSecond);
System.out.println(l);
Period

基於日期的時間段。

LocalDate start = LocalDate.of(2020, 7, 28);
LocalDate end = LocalDate.of(2020, 7, 29);
 
Period period = Period.between(start, end);
boolean negative = period.isNegative();//判斷start end的大小
System.out.println(period);//格式為P-1Y-1M-30D
//基於年與日的時間段
Duration

基於時間的時間段。

Instant start = Instant.parse("2020-07-09T06:07:30.00Z");
Instant end = Instant.parse("2019-05-07T11:12:37.20Z");

Duration duration = Duration.between(start, end);
boolean negative = duration.isNegative();//判斷start end的大小
System.out.println(duration);//格式為PT-10290H-54M-52.8S
//基於時分秒的時間段

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 如果父組件監聽到子組件掛載mounted做一些邏輯處理 1、使用on和emit 子組件emit觸發一個事件,父組件emit觸發一個事件,父組件on監聽相應事件。 // Parent.vue <Child @mounted="doSomething"/> // Child.vue mounted() ...
  • 動態規劃整體思路是用遞歸問題求解,然後對遞歸過程中存在的大量重疊子問題進行優化, 自頂向下的求解的思路為記憶化搜索,自底向上的解決問題的思想就是動態規劃,自頂向下的求解通常更好理解,我們理解後在改成自底向上的動態規劃求解; 劍指 Offer 10- I. 斐波那契數列寫一個函數,輸入 n ,求斐波那 ...
  • 實現在父組件中促發子組件裡面的方法 子組件: <template> <div> 我是子組件 </div> </template> <script> export default { name: "child", methods: { parentHandleclick(e) { console.lo ...
  • 在實現客服系統的過程中,需要有新消息的時候標題欄閃爍提示 因為聊天框是被iframe框進去的頁面,所以在聊天框中收到websocket消息以後要把消息發送給父集頁面,在父頁面中閃爍標題 測試頁面地址: https://gofly.sopans.com/ 子頁面發送到父頁面的實現是,在父頁面增加消息監 ...
  • 本教程案例線上演示 有路網PC端 有路網移動端 免費配套視頻教程 免費配套視頻教程 教程配套源碼資源 教程配套源碼資源 字體樣式 屬性名 含義 舉例 font-family 設置字體類型 font-family:"隸書"; font-size 設置字體大小 font-size:12px; font- ...
  • 一、Nacos 介紹 Nacos 是 Alibaba 公司推出的開源工具,用於實現分散式系統的服務發現與配置管理。英文全稱 Dynamic Naming and Configuration Service,Na 為 Naming/NameServer 即註冊中心,co 為 Configuration ...
  • 特別註意:本代碼為 Springboot 工作流 前後分離 + 跨域 版本 (許可權控制到菜單和按鈕) 後臺框架:springboot2.3.0+ Flowable6.5.0+ mybaits+maven+介面 前端頁面:html +vue.js 形式 jquery ajax 非同步跨域 json 格式 ...
  • 徹底理解微商城多租戶Saas架構設計 原文鏈接:https://blog.csdn.net/haponchang/article/details/104246317,感謝作者提供這麼好的總結! 1.具體的SaaS架構必須 1.先仔細選擇最適合應用程式需求的租戶模型, 2.需要根據租戶模型來選定最終的 ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...