C C++現在のシステム時間の取得方法

1843 ワード

Cライブラリのシステム時間に関する関数はヘッダファイルに定義され、C++はヘッダファイルに定義されます.
一、time(time_t*)関数
関数の定義は次のとおりです.
time_t time (time_t* timer);
システムの現在のカレンダータイムUTC 1970-01-01 00:00:00からのunixタイムスタンプの取得
パラメータ:timerアクセス結果の時間ポインタ変数、タイプtime_t,ポインタ変数はnullであってもよい.timerポインタがnullでない場合、time()関数の戻り値変数はtimerポインタと同様に、同じメモリアドレスを指します.それ以外の場合、timerポインタがnullの場合、time()関数はtime_を返します.t変数時間.
値を返します.成功した場合は、現在のシステムカレンダー時間を取得します.そうしない場合は、-1を返します.
二、構造体struct tm
変数#ヘンスウ#
を選択します.
説明
範囲
tm_sec
int
毎分の秒数
[0 - 61]
tm_min
int
1時間後の分数
[0 - 59]
tm_hour
int
明け方からの時間
[0 - 23]
tm_mday
int
月からの日数
[1 - 31]
tm_mon
int
1月からの月数
[0 - 11]
tm_year
int
1900年からの年数
 
tm_wday
int
曜日からの日数
[0 - 6]
tm_yday
int
一年の何日目、ゼロから
[0 - 365]
tm_isdst
int
サマータイム
 
 
 
 
 
ここにはいくつか注意しなければならない点があります.
1. tm_secはC 89の範囲[0−61]であり、C 99では[0−60]に訂正される.通常の範囲は[0-59]ですが、一部のシステムでは60秒のジャンプが発生します.
2. tm_monはゼロから始まるので、1月は0、12月は11です.
三、ローカル時間変換関数localtime(time_t*)
関数プロトタイプ
struct tm * localtime (const time_t * timer);
カレンダー時間をローカル時間に変換し、1970年からのタイムスタンプを1900年からのタイムデータ構造に変換
四、ソースコード及びコンパイル
current_time.cpp
#include 
#include 

int main(int argc, char* argv[]) {
    time_t rawtime;
    struct tm *ptminfo;

    time(&rawtime);
    ptminfo = localtime(&rawtime);
    printf("current: %02d-%02d-%02d %02d:%02d:%02d
", ptminfo->tm_year + 1900, ptminfo->tm_mon + 1, ptminfo->tm_mday, ptminfo->tm_hour, ptminfo->tm_min, ptminfo->tm_sec); return 0; }

コンパイルおよび実行
$ g++ current_time.cpp
$ ./a.out
current: 2017-07-26 23:32:46