java.time 時間 instant

URL Link //n.sfs.tw/12356

2018-04-27 09:12:43 By igogo

 

當使用者申請表單後, 需要為此文件產生一個申請的時間戳記

可用 java.time 中的 Instant  

Instant instant = Instant.now();

 

取得與Epoch Time 相差的秒數存到資料庫 (西元1970年1月1日凌晨0點整)

long timestamp = instant.getEpochSecond();

 

這樣會取得一個 long 值 例如: 1524790672

 

但是在使用者的表單上 列印這個只是一長串數值是沒意義的  所以要改成Asia/Taipei的時間及可悅讀的時間格式

instant = Instant.ofEpochSecond(timestamp);

ZonedDateTime present = instant.atZone(ZoneId.of("Asia/Taipei"));  //taipei時區

System.out.println(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm").format(present));

 

日後從資料庫取出顯示時間的方法亦同

 

 

抓時間四小時的記錄

  Instant fourHoursAgo = Instant.now().minus(Duration.ofHours(4));