Calendar原始碼--JDK是怎麼計算時間的
背景
平常自己寫程式碼用到時間戳去區分兩個時間是不是同一天,兩天之間的自然天數差是多少。然後就會用一些方法將當前時區的時間戳轉化成對應的yyyyMMdd格式,然後再轉成這個時間對應零時區的時間戳,這個時間戳就是從1970年1月1號之後的時間偏移量。用這個偏移量就能計算出兩個時間是不是同一天、自然天數差是多少。
示例程式碼如下:
/**
* 計算第二個時間減第一個時間的天數差,單位毫秒
* 同一天則為0, 第二個時間大,則為正;否則為負
* 考慮到了時區
*/
public static long daysDiff(long timeFirst, long timeNext) {
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
long time1 = formatter.parse(formatter.format(timeFirst)).getTime();
long time2 = formatter.parse(formatter.format(timeNext)).getTime();
long dayFirst = time1 / milliSecondsOneDay;
long dayNext = time2 / milliSecondsOneDay;
return dayNext - dayFirst;
} catch (ParseException e) {
log.error("daysDiff calc wrong ", e);
return Integer.MIN_VALUE;
}
}
相關文章
- 時間複雜度怎麼算?如何計算時間複雜度?時間複雜度
- Date型別使用Calendar進行時間運算型別
- js計算兩個時間點時間間隔的程式碼例項JS
- golang gin框架進行時間運算之解決orm時間與時間運算——附原始碼Golang框架ORM原始碼
- 計算時間的例子
- 成品直播原始碼,golang計算時間段內的工作日數量原始碼Golang
- [Q]怎麼樣快速計算事務的時間與日誌量 zt
- Java 時間類 Date、Calendar 及用法Java
- js 計算兩個時間的時間差JS
- 計算兩段時間的時間差 (轉)
- 雲端計算開發是什麼?雲端計算的就業前途怎麼樣?就業
- PHP時間計算PHP
- 時間差計算
- 紅外測溫儀的精度是怎麼計算的
- 以太坊gas是什麼?gasprice怎麼計算?
- 適合時間序列資料的計算指令碼指令碼
- context裡的超時時間是怎麼在微服務之間傳遞的Context微服務
- 計算時間,指定時間的多少個月後
- 直播電商原始碼,活動開始時間計時器原始碼
- Calendar:計算兩個日期相差的天數
- JavaScript計算兩個時間點之間的時間差JavaScript
- Vue3原始碼解析--收集的依賴是什麼?怎麼收集的?什麼時候收集的?Vue原始碼
- 恆訊科技分析:是什麼導致雲端計算中的CPU竊取時間?
- 【Python】我是如何使計算時間提速25.6倍的Python
- 什麼是計算機編碼的定義?計算機
- 時間複雜度的計算時間複雜度
- [原始碼]Sqlite是怎麼通過CursorWindow讀DB的原始碼SQLite
- JS計算時間差JS
- 選redis還是memcache,原始碼怎麼說?Redis原始碼
- JavaScript 計算程式碼執行花費時間JavaScript
- javascript計算兩個日期之間的時間差程式碼例項JavaScript
- Linux Shell 時間運算以及時間差計算方法Linux
- 交友原始碼中即時通訊怎麼工作的?原始碼
- Java 中JDK7時間類與JDK8中的時間類JavaJDK
- [PY3]——時間處理——datetime | calendar
- java計算時間差及比較時間Java
- 計算兩個日期相差的天數,Calendar用法
- 關於《深入理解計算機系統》 程式碼是怎麼執行的計算機