獲取時區方法(C語言實現)

2021-06-13 18:24:50 字數 1783 閱讀 6164

本文首先普及一下時區以及各種時間的含義。

如果不需普及直接跳到最後的**,為獲取時區的c語言**。

時區咱們一起回憶一下中學的地理知識,地球是自西向東自傳逆時針自傳,自西向東逆時針公轉。所以陽光總是自東向西掃過,也就是我們常說的太陽東昇西落。

地球自傳一周的弧度是360度,時間是24小時,所以人類在公元2023年的國際會議上制定了全球性的標準時,明定以英國倫敦格林威治這個地方為零度經線的起點(亦稱為本初子午線),並以地球由西向東每24小時自轉一周360°,訂定每隔經度15°,時差1小時。而每15°的經線則稱為該時區的**經線。和0度經線對著的180度的經線也被稱為換日線,因為自西向東越過此線時,日期需要加一日。(這乙個換日線在中國的中學地理裡演變出了各種萬惡的計算題)

以本初子午線為界,往西順次稱為西一區直至西十二區,向東為東一區至東12區。中國雖然跨越多個時區,統一使用北京所在的東八區作為中國的標準時間。

gmt  (greenwich mean time)  格林威治時間

即本初子午線的時間,一般作為全球時間的基準參考時間。據說是以格林威治天文台命名的。(誰讓那時候人家國家牛呢,要是中國制定規則的話沒準就以中國時間為準了。)

utc (universal time coordinated) 世界標準時間或世界協調時間

協調世界時是以原子時秒長為基礎,在時刻上盡量接近於世界時的一種時間計量系統。utc時間和gmt時間其實是同乙個時間,只不過utc時間的單位是秒。定期會進行校準,校準的方式是發布閏秒,即有兩個同樣的秒。記住,utc是gmt的以秒為單位的計時。

cst (china standard time) 中國標準時間

即咱們新聞聯播那個嘟嘟嘟的時間。也就是東八區的時間。當gmt為0點的時候,我們已經8點了。我們的時間需要在gmt的時間上加八個小時(這可是中學地理題哦,呵呵呵)

獲取時區的**

下面是獲取時區的**,根據時區即可換算gmt時間到本地時間。

/**

* @file tt_time.c

* @brief

* @author cjx

* @version

* @date 2013-04-17

*/

#include #include int main(int argc,char *argv)

else if (time_zone > 12)

char cur_time[256];

strftime (cur_time,256, " %b %a %y年%m月%d日 %h時%m分%s秒 %c %x %x", &tm_local);

printf("local time :%s\n", cur_time);

strftime(cur_time,256, " %b %a %y年%m月%d日 %h時%m分%s秒 %c %x %x", &tm_gmt);

printf("gmt time :%s\n", cur_time);

printf("your time zone is +%d. (- is west, + is east)\n", time_zone);

return 0;

}

出道中學地理題檢測一下(題目源自網路)

當世界標準時間為2023年1月1日4點時,全球已是2023年的範圍大約是 

a.全球一半的地區   b.全球三分之一的地區   c.全球大於四分之三的地區   d.全球多於一半的地區

答案是: b 哦~ 

C語言實現獲取LINUX當前時間

include stdio.h include time.h intmain void time 函式作用 取得當前時間 標頭檔案 include 函式原型 time t time time t t 函式說明 此函式會返回從分元1970年1月1日的utc時間從0時0分0秒算起到現在所 經過的秒數.如...

LCD 畫線方法及C語言實現

顯示器上與數學上直線定義的區別 數學上的直線是沒有寬度 由無數個點構成的集合,顯然,光柵顯示器只能近地似顯示直線.當我們對直線進行光柵化時,需要在顯示器有限個象素中,確定 最佳逼近 該直線的一組象素,並且按掃瞄線順序,對這些象素進行寫操作,這個過程稱為用顯示器繪製直線或直線的掃瞄轉換.由於在乙個圖形...

C語言實現數值互換的方法

方法一 使用中間變數賦值傳遞 簡答的問題 如果現在由兩杯水,要想使這兩杯水互換一下,最先想到的就是再拿出第三個杯子,先把乙個杯子的水倒入第三個杯子中,再把另乙個杯子的水倒入這個空杯子,然後再把第三個杯子的水倒入第二個杯子裡面。c語言實現數值互換的方法 1 使用中間變數賦值傳遞 int main 執行...