最近在學習muduo網路庫原始碼,小結一下日期和時間計算。
gmt(ut)、utc、ad、ce、bc等略。參考:
儒略日(julian day number, 這裡簡稱為jd)起始時間為gmt -4712-01-01(i.e.4713 b.c.),中午12時。此刻2023年11月8日18:00:00的儒略日是2457335.25,0.1表示2.4小時、144分鐘或者8640秒,以此類推。由於儒略日數字位數太多,國際天文學聯合會於2023年採用修訂後的儒略日(mjd),其定義為 mjd = jd – 2400000.5。mjd相應的起點是gmt 1858-11-17,0時。計算機的unix time是從gmt 1970-01-01, 0時開始至今的秒數。因此,unix time = (jd – 2440587.5) × 86400。年月日和jd可以通過公式互相轉化,即muduo中的muduo::detail::getjuliandaynumber、muduo::detail::getyearmonthday函式。muduo中muduo::date::kjuliandayof1970_01_01 值為 2440588,也就是起點設為0時了。
時區、閏秒等概念參考man tzfile,
struct tm
gmtime_r
gettimeofday,x86_64不需要進入核心,參考:
timgm
互相轉換如圖所示:( 參考:
python計算日期和時間
import datetime 現在nowtime datetime.datetime.now strftime y m d h m s 過去一小時時間 pasttime datetime.datetime.now datetime.timedelta hours 1 strftime y m d ...
js時間戳轉換日期格式和日期計算
1 function formatdate datetime 14 15 var date new date 16 console.log formatdate date 2018 05 26 23 09 26根據開始日期和期限,計算結束日期 1 date 日期字串yyyy mm dd,如 2016...
js時間戳轉換日期格式和日期計算
1 function formatdate datetime 1415 var date new date 16 console.log formatdate date 2018 05 26 23 09 26 根據開始日期和期限,計算結束日期 1 date 日期字串yyyy mm dd,如 2016...