簡單點說,就是,在使用gmtime() 和 localtime()操作的時候,不能多次呼叫這些對struct tm結構體操作的函式,他們不是執行緒安全的。這些函式返回的指標實際上是指向同乙個變數,多次操作會改變對應的struct tm的結構體中的資料。詳見man gmtime
程式舉例
#include #include int main(int argc, char ** argv)
程式的輸出:
process begin at [0x400594]
current time is [1498122880]
address of struct tm *p_stm is [0x7fffb9ebfbb0]. pointer to object is [0x390f193420]
struct tm *p_stm is [2017-06-22 09:14:40] time_zone is [gmt]
address of struct tm *p_stm2 is [0x7fffb9ebfba8]. pointer to object is [0x390f193420]
struct tm *p_stm2 is [2017-06-22 17:14:40] time_zone is [cst]
(*p_stm) after calling localtime() is [2017-06-22 17:14:40] time_zone is [cst]
說明:根據日誌,可以看到,上述程式中的gmtime()和localtime()所返回的結構體的位址是同乙個,也就是說,定義的兩個指標實際上是指向的同乙個物件。當使用localtime()修改了struct tm的結構體指標的時候,gmtime()返回的指標所指向的物件也發生改變。
js對時間的操作
獲取當前時間 var mydate new date 獲取時間中的年月日時分秒 mydate.getyear 獲取當前年份 2位 mydate.getfullyear 獲取完整的年份 4位,1970 mydate.getmonth 獲取當前月份 0 11,0代表1月 mydate.getdate 獲...
C 對時間的操作
獲取當前星期的開始日期和結束日期 private void timebe out string bdate,out string edate else if firstday.dayofweek dayofweek.monday else if firstday.dayofweek dayofwee...
C 中對時間的操作
1 datetime 數字型 system.datetime currenttime new system.datetime 1.1 取當前年月日時分秒 currenttime system.datetime.now 1.2 取當前年 int 年 currenttime.year 1.3 取當前月 ...