日付と時刻(C / C ++)

プログラムを参照するために<CTIME> C ++ヘッダファイルは、使用する前に、操作の日時のC言語の構造と機能を継承します

4時間関連の種類があります。clock_t、time_t型、size_t型、およびTM。clock_t型、size_tの、のtime_tとシステム時刻と日付が特定の整数として表すことができます。

C構造の形態で日時を保存するtm構造体、TM構造次のように定義されます:

構造体(TM)
{ 
    int型のtm_sec; // 秒、0〜59の正常範囲が、61を可能にすることである
    INT tm_min; // 分59 0〜
    INT tm_hour; // H 23 0〜ある
    INT tm_mday;     // 月の最初の数一日の
    int型 tm_mon;     // 5月11日〜0 
    int型のtm_year;     // 数年1900年に始まり、以来、
    int型の tm_wdayコンポーネント;     // 週の最初の数日間
    のint tm_yday;     // 年の最初の日
    のint tm_isdstが; // サマータイムとき     
}

関連機能:

機能

説明

time_tの時間(time_t型*時間)。

この機能は、カレンダー時間の現在のシステムを返します。秒数後の1970年1月1日以来、システムは時間がなかった場合は、-1を返します

するchar * ctimeの(定数のtime_t *時間)。

:分:秒年\ nは\ 0この機能は、ローカルタイム、文字列の日月年時間を表す文字列へのポインタを返します。

構造体tm * localtimeの(のconst time_t型*時間)。

この機能は、ローカル時刻tm構造体を示すポインタへのポインタを返します。

clock_tクロック(無効)。

プログラムの実行時間が利用できない場合、関数から使用時間プロセッサ時間を返し、または-1

char *の関数は、asctime(constの構造体tm *時間)。

日月年時間:分:秒年\ nを\ 0この関数は、文字列へのポインタを返し、情報構造保存された時点を含む文字列は、フォームの中に戻りました

構造体tm * gmtimeは(のconst time_t型*時間)。

この機能は、時間を指し示すポインタを返し、時間は協定世界時(UTC)と、tm構造体であり、また、グリニッジ標準時(GMT)表現として知られています

time_t型はmktime(構造体tm *時間)。

この関数は、コンフィギュレーションに格納された時点に対応するカレンダー時間、時間を戻します

ダブルdifftime(time_t型のTIME2、time_t型時間1)。

この関数は、時刻1とTIME2間の位相差の秒数を返します。

size_t型のstrftime()。

この関数は、日付と時刻の指定されたフォーマットをフォーマットするために使用することができます

例:

#include <iostreamの> 
する#include <ctimeの>
 使用して 名前空間STD; 

int型のmain()
{ 
    // 現在のシステム日付と時刻の初期化0に基づい 
    のtime_t今の時間=(0 );

     / 列次に変換
     チャー * DT = CTIME (&今); 

    COUT << " ローカルの日付と時刻:   " << DT << てendl; 

    // 構造体は今、TMに変換し 
    、TM = gmtmのgmtime、*(&今); 
    DT = 関数は、asctime(gmtm); 
    COUT << " UTC日時:   " << << DTendl;
    リターン 0 ; 
}

結果:

exbot @ Ubuntuの:〜/ wangqinghe / C ++ /時間の$ ./time

現地日時:月8月5日午後二時54分25秒2019

 

UTC日時:月8月5日6時54分25秒2019

 

時間tmを用いた構造のフォーマット

書式#include <iostreamの> 
の#include <ctimeの>
 使用して 名前空間はstdを、

INT メイン()
{ 
    のtime_tは現在時間(= 0 )。
    
    裁判所未満 << 1970年から続い秒経過: <<今すぐ<< てendl; 

    TM * LTM = localtimeの(&今)。

    裁判所未満 << " 年:" << 1900 + ltm->のtm_year << てendl; 
    裁判所未満 << " 月:" << 1 + ltm-> tm_mon < < てendl; 
    COUT<< " 当日:" << ltm-> tm_mday << てendl; 
    裁判所未満 << " 時間:" << ltm-> tm_hour << " " ; 
    coutの << ltm-> tm_min << " " ; 
    coutの << ltm->のtm_sec << てendl;
    リターン 0 ; 
}

結果:

exbot @ Ubuntuの:〜/ wangqinghe / C ++ /時間の$ ./time1

その後、1970年からの秒が経過:1564988067

年:2019

月:8

日:5

時間:午前14時54分27秒

 

XX:XX出力形式20XX-XX-XX XXに:

#include <iostreamの> 
する#include <CTIME> 
の#include <cstdlib> 
の#include <cstdioを> 使用して名前空間STD。文字列Get_Current_Date(); INT メイン()
{ 
    COUT。<< Get_Current_Date()c_str()<< ENDL。
    リターン0 ; 
} ストリングGet_Current_Date()
{ 
    time_tのnowtime。
    nowtime = 時間(NULL)。
    チャー TMP [ 64 ]。
    strftime(TMP、はsizeof(TMP)、" %Y-%M-%D%H:%のM:%S "

 



 

、LOCALTIME(&nowtime))。
    返すTMPを。
}

結果:

exbot @ Ubuntuの:〜/ wangqinghe / C ++ /時間の$ ./time2

2019年8月5日午前15時〇〇分14秒

おすすめ

転載: www.cnblogs.com/wanghao-boke/p/11305023.html