天天看點

Java基礎入門(一):Java裡面的時間

這是一篇非常基礎的java技術文章,簡單的說就是一個知識點,是自己在寫業務代碼時的一點總結,大神請繞行。

在 java 裡面 表示 時間 ,一種是 java.util.date 類,一種是 long 型的unix時間戳,還有一種是string的字元串,當然前兩種時間表示方法是時間定義的,可以對其進行操作計算得到一定的時間含義的,string字元串大多是前端顯示之用,那當這三種形式共存時,必不可少就需要類型之間的轉換及其對時間上的計算操作,這是在做一些業務功能上經常會用到的,現在總結一下通常所用的方法,以來簡化後面再用到此類時能節省一定的時間而不需每次都要找度娘。

小典故:unix時間戳,表示 格林威治時間1970年01月01日00時00分00秒起至現在的總秒數,如果系統為32位系統,則會因為位數不夠的情況下,在格林威治時間2038年01月19日03時14分07秒發生溢出,導緻系統癱瘓,但目前看來應該 大部分 系統都是 64位的吧,算了算貌似有生之年可以到那一天,不曉得會發生什麼事情不。:-d

大多是 string 與 date 之間的轉換 ,有一套yyyy-mm-dd hh:mm:ss的表示想必大家應該都知道

在這裡和大家推薦一下apache的 dateutils , 這個方法 歸納了一些日期上的操作,讓你用一句兩句話便搞定時間上的操作,真乃神器也,有空看一下它的源碼,你就會知道其實還是那麼幾個類,通常比較好的業務代碼,會自己 再封裝一個dateutil ,去歸納總結一下在本業務中需要用到的一些常用的日期操作和符合本系統的日期表達方式。

apache 的 dateutils 提示已經提供了大部分對 日期 增減的 方法,看裡面的方法就會知道:

Java基礎入門(一):Java裡面的時間

但如果你對時間有特别的需求,比如說需要取某個時間的 小時 數,這個時候 就需要用到 calendar ,是以一般的操作是 将date 轉換成calendar ,再利用caleadar對時間進行相應的操作,貼了一下相關代碼,給個參考

更多calendar類的用法等你挖掘,一般看看相應源碼就能滿足 你當時業務時間功能上的需求。

這又印證了一句古話,see the source code, see the world (嗯,是我說的)。