摘要:常用的有三個(gè)類是用來(lái)表示時(shí)刻的,類似的時(shí)間,表示從協(xié)調(diào)世界時(shí)年月日時(shí)分秒起至現(xiàn)在的總秒數(shù),也可以獲取毫秒。表示一個(gè)日期,只有年月日,沒有時(shí)分秒。還有和方法可以用來(lái)比較兩個(gè)時(shí)間。用的是系統(tǒng)默認(rèn)時(shí)區(qū)。
Java 8 提供了一套新的時(shí)間 api ,比之前的 Calendar 類要簡(jiǎn)單明了很多。常用的有三個(gè)類 Instant、LocalDate 、LocalDateTime , Instant 是用來(lái)表示時(shí)刻的,類似 Unix 的時(shí)間,表示從協(xié)調(diào)世界時(shí)1970年1月1日0時(shí)0分0秒起至現(xiàn)在的總秒數(shù),也可以獲取毫秒。LocalDate 表示一個(gè)日期,只有年月日,沒有時(shí)分秒。LocalDateTime 就是年月日時(shí)分秒了。
Instantpublic static void main(String[] args) { Instant now = Instant.now(); System.out.println("Now secoonds:" + now.getEpochSecond()); System.out.println("Now milli :" + now.toEpochMilli()); }
輸出當(dāng)前時(shí)刻距離 1970年1月1日0時(shí)0分0秒 的秒和毫秒
Now secoonds:1541321299
Now milli :1541321299037
為了方便輸出時(shí)間格式,Java8 提供了 DateTimeFormatter 類來(lái)替代之前的 SimpleDateFormat。
public static void main(String[] args) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime now = LocalDateTime.now(); System.out.println("Now: " + now.format(formatter)); }
Now: 2018-11-04 16:53:09
LocalDateTime 提供了很多時(shí)間計(jì)算的方法,比如 加一個(gè)小時(shí),減去一周,加上一天等等這樣的計(jì)算,比之前的 Calendar 要方便許多。
public static void main(String[] args) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime now = LocalDateTime.now(); System.out.println("Now: " + now.format(formatter)); LocalDateTime nowPlusDay = now.plusDays(1); System.out.println("Now + 1 day: " + nowPlusDay.format(formatter)); LocalDateTime nowMinusHours = now.minusHours(5); System.out.println("Now - 5 hours: " + nowMinusHours.format(formatter)); }
Now: 2018-11-04 17:02:53
Now + 1 day: 2018-11-05 17:02:53
Now - 5 hours: 2018-11-04 12:02:53
LocalDateTime 還有 isAfter 、 isBefore 和 isEqual 方法可以用來(lái)比較兩個(gè)時(shí)間。LocalDate 的用法和 LocalDateTime 是類似的。
Instant 和 LocalDateTime 的互相轉(zhuǎn)換這倆的互相轉(zhuǎn)換都要涉及到一個(gè)時(shí)區(qū)的問(wèn)題。LocalDateTime 用的是系統(tǒng)默認(rèn)時(shí)區(qū)。我們可以先把 LocalDateTime 轉(zhuǎn)為 ZonedDateTime ,然后再轉(zhuǎn)成 Instant。
public static void main(String[] args) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime now = LocalDateTime.now(); System.out.println("Now: " + now.format(formatter)); Instant nowInstant = now.atZone(ZoneId.systemDefault()).toInstant(); System.out.println("Now mini seconds: " + nowInstant.toEpochMilli()); }
Now: 2018-11-04 17:19:16
Now mini seconds: 1541323156101
public static void main(String[] args) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); Instant now = Instant.now(); System.out.println("Now mini seconds: " + now.toEpochMilli()); LocalDateTime nowDateTime = LocalDateTime.ofInstant(now, ZoneId.systemDefault()); System.out.println("Zone id: " + ZoneId.systemDefault().toString()); System.out.println("Now: " + nowDateTime.format(formatter)); }
Now mini seconds: 1541323844781
Zone id: Asia/Shanghai
Now: 2018-11-04 17:30:44
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/71999.html
摘要:類是日期時(shí)間格式化子類的抽象類,我們通過(guò)這個(gè)類可以幫我們完成日期和文本之間的轉(zhuǎn)換也就是可以在對(duì)象與對(duì)象之間進(jìn)行來(lái)回轉(zhuǎn)換。構(gòu)造方法由于為抽象類,不能直接使用,所以需要常用的子類。 day01【Object類、常用API】 主要內(nèi)容 Object類 Date類 DateFormat類 Calendar類 System類 StringBuilder類 包裝類 教學(xué)目標(biāo) -[ ] 能夠說(shuō)出...
摘要:前言前面一篇文章寫了如何安全的使用里面介紹了如何處理日期時(shí)間,以及如何保證線程安全,及其介紹了在中的處理時(shí)間日期默認(rèn)就線程安全的類。引入了全新的日期時(shí)間格式工具,線程安全而且使用方便。 前言 前面一篇文章寫了《SimpleDateFormat 如何安全的使用?》, 里面介紹了 SimpleDateFormat 如何處理日期/時(shí)間,以及如何保證線程安全,及其介紹了在 Java 8 中的處...
摘要:如問(wèn)到是否使用某框架,實(shí)際是是問(wèn)該框架的使用場(chǎng)景,有什么特點(diǎn),和同類可框架對(duì)比一系列的問(wèn)題。這兩個(gè)方向的區(qū)分點(diǎn)在于工作方向的側(cè)重點(diǎn)不同。 [TOC] 這是一份來(lái)自嗶哩嗶哩的Java面試Java面試 32個(gè)核心必考點(diǎn)完全解析(完) 課程預(yù)習(xí) 1.1 課程內(nèi)容分為三個(gè)模塊 基礎(chǔ)模塊: 技術(shù)崗位與面試 計(jì)算機(jī)基礎(chǔ) JVM原理 多線程 設(shè)計(jì)模式 數(shù)據(jù)結(jié)構(gòu)與算法 應(yīng)用模塊: 常用工具集 ...
摘要:結(jié)構(gòu)型模式適配器模式橋接模式裝飾模式組合模式外觀模式享元模式代理模式。行為型模式模版方法模式命令模式迭代器模式觀察者模式中介者模式備忘錄模式解釋器模式模式狀態(tài)模式策略模式職責(zé)鏈模式責(zé)任鏈模式訪問(wèn)者模式。 主要版本 更新時(shí)間 備注 v1.0 2015-08-01 首次發(fā)布 v1.1 2018-03-12 增加新技術(shù)知識(shí)、完善知識(shí)體系 v2.0 2019-02-19 結(jié)構(gòu)...
Date-Time Java SE 8發(fā)行版中引入的Date-Time包java.time提供了全面的日期和時(shí)間模型,是在JSR 310:Date and Time API下開發(fā)的,盡管java.time基于國(guó)際標(biāo)準(zhǔn)化組織(ISO)日歷系統(tǒng),但也支持常用的全球日歷。 此課程介紹了使用基于ISO的類來(lái)表示日期和時(shí)間以及操作日期和時(shí)間值的基本原理。 概述 時(shí)間似乎是一個(gè)簡(jiǎn)單的主題,即便是便宜的手表也能...
閱讀 3225·2021-11-08 13:18
閱讀 2344·2019-08-30 15:55
閱讀 3654·2019-08-30 15:44
閱讀 3125·2019-08-30 13:07
閱讀 2840·2019-08-29 17:20
閱讀 2012·2019-08-29 13:03
閱讀 3494·2019-08-26 10:32
閱讀 3279·2019-08-26 10:15