2017-06-21 JDK8時間模型——Instant

Java 8 新增關于日期的操作類权悟,Instant 和 DateTime

Instant和 DateTime用于替換 Calender 和 Date。
官方說法是提供了更好的性能和一致性(線程安全)峻呕。

程序中有自己編寫的DateUtils工具類,計劃用Java8新提供的類替換之铭乾。

學習過程中遇到一些問題和感想璧微,記錄之。仔細考慮Instant類坑质,是一個時間點的抽象合武。

時間 和 時間刻度

程序模型是現(xiàn)實的模擬临梗,既然基于現(xiàn)實涡扼,則必須了解時間和時間刻度,他們產生的原因盟庞,是什么內容吃沪,以及如何產生(why,what什猖,how)票彪。

直接引用 JDK Instant類的 java doc:

The length of the solar day is the standard way that humans measure time.

This has traditionally been subdivided into 24 hours of 60 minutes 
of 60 seconds, forming a 86400 second day.

Modern timekeeping is based on atomic clocks which precisely define an SI 
second relative to the transitions of a Caesium atom. The length of an SI 
second was defined to be very close to the 86400th fraction of a day.
...

大概就是這樣,能理解就可以不狮,然后Java 自己有自己的簡化模型降铸。

Java Time-Scale 時間刻度

首先是氛圍兩段(Segment)計時規(guī)則:

There are currently, as of 2013, two segments in the Java time-scale.

For the segment from 1972-11-03 (exact boundary discussed below) until
further notice, the consensus international time scale is UTC (with
leap seconds).  
...
On days that do have a leap second, the leap second is spread equally
over the last 1000 seconds of the day, maintaining the appearance of
exactly 86400 seconds per day.

For the segment prior to 1972-11-03, extending back arbitrarily far,
the consensus international time scale is defined to be UT1
...
In this segment, the Java Time-Scale is
identical to the consensus international time scale. 

The exact boundary between the two segments is the instant where UT1 = UTC
between 1972-11-03T00:00 and 1972-11-04T12:00.

然后是 Java Time-Scale 包含的類:

The Java time-scale is used for all date-time classes.
 This includes {@code Instant}, {@code LocalDate}, {@code LocalTime}, {@code OffsetDateTime},
  {@code ZonedDateTime} and {@code Duration}.

終于到主題 Instant

兩部分組成,表示秒的long摇零,表示納秒的int推掸。
0秒表示1970-01-01,之前的用負秒驻仅,之后的用正秒谅畅。

當前時間 用的 Clock類的方法獲得:

public static Instant now() { return Clock.systemUTC().instant(); }

Instant 組成的只有兩個字段,秒 和 納秒:


Instant fields

Instant 和 Date互轉

Date轉Instant:Instant instant = date.toInstant();
Instant轉Date:Date date = Date.from(instant);

Instant 和 LocalDateTime互轉

Instant轉LocalDateTime:LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
LocalDateTime轉Instant :Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();

Instant Tips:

Instant 本身只有時間點噪服,沒有時區(qū)信息毡泻,用 .atZone(ZoneId.systemDefault()) 帶上本地時區(qū)信息即可。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末粘优,一起剝皮案震驚了整個濱河市仇味,隨后出現(xiàn)的幾起案子呻顽,更是在濱河造成了極大的恐慌,老刑警劉巖邪铲,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芬位,死亡現(xiàn)場離奇詭異,居然都是意外死亡带到,警方通過查閱死者的電腦和手機昧碉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來揽惹,“玉大人被饿,你說我怎么就攤上這事√虏” “怎么了狭握?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長疯溺。 經常有香客問我论颅,道長,這世上最難降的妖魔是什么囱嫩? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任恃疯,我火速辦了婚禮,結果婚禮上墨闲,老公的妹妹穿的比我還像新娘今妄。我一直安慰自己,他們只是感情好鸳碧,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布盾鳞。 她就那樣靜靜地躺著,像睡著了一般瞻离。 火紅的嫁衣襯著肌膚如雪腾仅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天套利,我揣著相機與錄音推励,去河邊找鬼。 笑死日裙,一個胖子當著我的面吹牛吹艇,可吹牛的內容都是我干的。 我是一名探鬼主播昂拂,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼受神,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了格侯?” 一聲冷哼從身側響起鼻听,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤财著,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后撑碴,有當地人在樹林里發(fā)現(xiàn)了一具尸體撑教,經...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年醉拓,在試婚紗的時候發(fā)現(xiàn)自己被綠了伟姐。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡亿卤,死狀恐怖愤兵,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情排吴,我是刑警寧澤秆乳,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站钻哩,受9級特大地震影響屹堰,放射性物質發(fā)生泄漏。R本人自食惡果不足惜街氢,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一扯键、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧阳仔,春花似錦忧陪、人聲如沸扣泊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽延蟹。三九已至评矩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阱飘,已是汗流浹背斥杜。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留沥匈,地道東北人蔗喂。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像高帖,于是被迫代替她去往敵國和親缰儿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內容