1. 程式人生 > >【C/C++時間系列】通過gmtime()函式將時間戳轉換成GMT時間

【C/C++時間系列】通過gmtime()函式將時間戳轉換成GMT時間

【GMT】Greenwich Mean Time
格林尼治標準時間的正午是指當太陽橫穿格林尼治子午線時(也就是在格林尼治時)的時間。
地球每天的自轉是有些不規則的,而且正在緩慢減速。所以,格林尼治時間已經不再被作為標準時間使用。現在的標準時間──世界標準時間(UTC)

【UTC】世界標準時間
法文“Temps Universel Cordonné”縮寫則為“TUC”
英文“Coordinated Universal Time”縮寫為“CUT”
國際電信聯盟折中的方案為  UTC(Universal Time Coordinated)


北京時間=UTC+8=GMT+8

#############

【gmtime()】

函式模型在time.h中

/* Return the `struct tm' representation of *TIMER
   in Universal Coordinated Time (aka Greenwich Mean Time).  */
extern struct tm *gmtime (__const time_t *__timer) __THROW;

函式的引數是一個指向時間戳time_t型別的指標,返回struct tm 型別的分解時間,即UTC時間。分解時間介紹點這裡

【gmtime_r()】

gmtime()函式的另一個版本,可以把時間戳儲存在 tm型別的__restrict __tp中。  


/* Return the `struct tm' representation of *TIMER in UTC,
   using *TP to store the result.  */
extern struct tm *gmtime_r (__const time_t *__restrict __timer,
                            struct tm *__restrict __tp) __THROW;

程式碼實現如下:

#include <iostream>
#include <time.h>
using namespace std;
int main()
{
    struct tm mytm;
    time_t  t=time(NULL);
    cout<<"t is:"<<t<<endl;
    gmtime_r(&t,&mytm);
    cout<<"tm_year is:"<<mytm.tm_year<<endl;
    cout<<"tm_mon  is:"<<mytm.tm_mon<<endl;

    struct tm *p;
    p=gmtime(&t);
    cout<<"tm_year is:"<<p->tm_year<<endl;
    cout<<"tm_mon  is:"<<p->tm_mon<<endl;
}

編譯執行如下:

$
$gcc -lstdc++ l_gmtime.cpp 
$./a.out 
t is:1532959967
tm_year is:118
tm_mon  is:6
tm_year is:118
tm_mon  is:6
$

1.、通過time() 獲取時間戳

2、第一種方法:通過gmtime_r(&t,&mytm); 把 時間戳t 轉換成 分解時間 存入 mytm

      第二種方法:先定義一個指向struct tm 的指標p,然後p=gmtime(&t)  通過返回值實現

相關推薦

C/C++時間系列通過gmtime()函式時間轉換GMT時間

【GMT】Greenwich Mean Time 格林尼治標準時間的正午是指當太陽橫穿格林尼治子午線時(也就是在格林尼治時)的時間。 地球每天的自轉是有些不規則的,而且正在緩慢減速。所以,格林尼治時間已經不再被作為標準時間使用。現在的標準時間──世界標準時間(UTC) 【U

C/C++時間系列通過time()函式獲取時間

【時間戳】Unix時間戳(Unix timestamp),或稱Unix時間(Unix time)、POSIX時間(POSIX time),是一種時間表示方式,定義為從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數 ############## 【ti

C/C++檔案處理系列fstream::open函式開啟檔案

【fstream::open】 函式原型 void open (const char* filename, ios_base::openmode mode = ios_base::in | ios_base::out); 其中 filename 為

python通過LibreOffice把html文件轉換docx文件

去掉 less 通過 文件 bre eof html ice 要去 通過下面的一行命令,把test.html轉換成test.docx soffice --invisible --headless --convert-to docx:"Office Open XML Tex

go語言 基礎系列內建函式

原始檔builtin.go檔案中一共定義了15個內建函式,go1.9.2 版本。通過函式名可以直接呼叫函式。 func append(slice []Type, elems ...Type) []Type func copy(dst, src []Type) int

c++第二週任務一*(1‐1)編寫遞迴函式十進位制數轉換二進位制數輸出。

/任務一 /*(1‐1)編寫遞迴函式將十進位制數轉換成二進位制數輸出。 * 演算法說明: */ #include <iostream> using namespace std; void d2b( int n ) { } int main() { int a;

c# 呼叫Microsoft XPS Document Writer印表機,Pdf檔案轉換Xps檔案

最近碰到個專案,其中有個需要將pdf檔案轉換成xps檔案的功能,xps檔案還算是新東西,所以基本沒啥瞭解,通過一段時間的調查, 本人算是找到了2個方法:   1)通過PDFNet第三發開發元件即可很容易的完成轉換功能,並且還有其他針對pdf檔案操作的功能,還是很強大的

python 獲取整點時間,半整點時間 ,同時時間轉換 日期時間

%s bsp ray mktime timestamp 技術分享 取整 amp style import time, datetime def gettime(): for x in range(24): a = datetime.

時間轉換 標準時間(例:2018-10-30)

function timestampToTime(timestamp) { var date = new Date(timestamp * 1000); //時間戳為10位需*1000,時間戳為13位的話不需乘1000

13/11位unix時間轉換標準時間

使用範例 char *str="1320718222932"; long long time1; sscanf(str,"%I64d",&time); CString strTime=MillSecond2LocalTime(time,8); //////

原生JavaScript 時間轉換標準時間

我們經常在和後臺合作的時候,他們會給我們返回一些時間戳,前端需要把時間戳轉化成標準時間來顯示。 //時間戳轉換為時間格式 //number為我們需要轉換的時間戳 function toDate(number) { //如果是毫秒的時間戳就不需要這一步,直接下一步就可

jquery時間轉換格式化時間

直接上程式碼,希望能幫助到大家! function timestampToTime(timestamp) { //時間戳為10位需*1000,時間戳為13位的話不需乘1000 var date = new Date(timestamp * 1000);

postgresql 時間轉換普通時間

Unix時間戳(Unix timestamp),或稱Unix時間(Unix time)、POSIX時間(POSIX time),是一種時間表示方式,定義為從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數。Unix時間戳不僅被使用在Unix系統、類Uni

php把時間轉換多少時間之前函式

函式例項 function wordTime($time) { $time = (int) substr($time, 0, 10); $int = time() -

mysql 中怎麼把時間轉換正常時間

mysql將時間戳轉成常用時間格式 在mysql中,一個時間欄位的儲存型別是int(11),怎麼轉化成字元型別,比方儲存為13270655222,需要轉化為yyyy -mm-dd的形式 使用 FROM_UNIXTIME函式,具體如下: FROM_UNIXTIME(

C/C++時間系列struct tm 通過strftime轉換字串

【分解的時間 struct tm】 struct tm 是linux中用來儲存分解時間的資料結構。其定義在time.h中,可通過下面命令找到 $whereis time.h 其結構定義如下,基本都是整型的。有幾點需要注意的 1、tm_sec 表示秒,除了0~59秒,

腫瘤預測模型系列如何在R軟體中求一致性指數( Harrell'concordance index:C-index)?

今晚收到一封醫生好友的郵件,諮詢如何求Harrell的C-index?曾在丁香園論壇裡遇到過朋友求助,自己也嘗試回答過,論壇裡回答的言簡意賅,針對問題論問題,沒有詳細的原理說明,今天趁回覆朋友郵件的機會,就大致總結下自己對C-index的理解以及在R軟體中的計算過程。 所謂C-index,英文名全稱conc

異常/錯誤處理系列C語言如何實現異常處理

前言:     不管是哪門程式語言,在coding過程中,我們都會遇到一個很頭痛的問題,就是如何處理函式的返回值和異常。函式返回值傳統的處理的方法是使用If/else。但對於有返回碼的函式,需要寫“無數”的if分支,程式碼很難看,也不好維護。異常處理更是頭痛,一旦發生,只有

C/C++檔案處理系列struct stat 結構體定義

獲取檔案狀態的函式 stat fstat lstat 都與struct stat 有關。函式原型如下,都定義在   sys/stat.h 中,原型如下   int stat(const char *path, struct stat *buf);   int fstat(i

C#冷知識系列(一)那些你知道或者不知道的奇淫巧技

愛的 讓我 同事 orm lec 工程師 能夠 代碼 優勢 引子 正如我在個人介紹中所寫,我是一個仍然堅持.NET的頭鐵高級軟件工程師,研究C#,.NET已經六年多,一直堅持認為自己的能力不足以教授別人,所以一直沒有想法寫博客。工作幾年,內容涵蓋了.NET框架下的各種軟件的