unix 時間的相關函式

2021-06-05 21:19:00 字數 929 閱讀 5076

unix 的時間大致可分為實時的時間和結構體中的時間

計算 1900 到 1970 年之間的秒數 rfc1305 - network time protocol  中規定,網路協議中的,時間戳的格式是乙個四個八位組。其值是自 1900 年以來的秒數。 unix 沒有提供函式以獲得 1900 年以來的秒數,但它提供了 1970 年(utc 時間)以來的秒數的獲取方式。由於  1900 -1970 年之間的天數是乙個固定值。所以我們可以得到 2023年以來的秒數。

//閏年 366天,平年 365天,1900 - 1970 年有 18個閏年,

static const int

seconds 

=( ( 

1970

-1900) *

365+

18) *24

*60*60

;時間的精度poxis 標準中,可以取到的時間的精度是 微秒(um)。 這是用 gettimeofday() 取得的。需要說明的是,time() 函式取得的系統秒數,未必是乙個精確的值。可能和 gettimeofday() 得到的值 落後一秒。因為 time()是乙個函式,而不是乙個系統呼叫 。它只取系統中儲存的乙個資料結構。因此。在高精度的場合,time()取到的秒數需要和 gettimeofday() 取到的秒數做一下比較。如果不一樣,則給 time 得到的時間補上一秒。

gettimeofday(

&time_t  trecv, tsend;

//獲取當前的 localtime

time( 

&tsend );

//補齊差的秒數

tsend 

+=( ( now.tv_sec &1

) ^( tsend &1

) );

一些系統中提供了取得納秒的函式。另外, odbc 的 timestamp_struct 資料型別,也是提供到納秒的精度。

UNIX時間函式

include time t time time t calptr 成功返回時間值,出錯返回 1 include struct timeval intgettimeofday struct timeval restrict tp,void restrict tzp 總是返回0某些平台支援用tzp說明...

C 時間戳 時間相關函式

時間戳 unix時間戳 unix timestamp 或稱unix時間 unix time posix時間 posix time 是一種時間表示方式,定義為從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數 1.函式模型 return the current time and p...

SQL日期時間相關的函式

取當前時間值 getdate 比較兩個時間的差 datediff select top 1000 序號 生效日期 失效日期 datediff day,失效日期,getdate as 日 datediff year,失效日期,getdate as 年1 datediff day,gd zj.失效日期,...