C言語の日付と時刻関数

C言語の日付・時刻関数は、C言語標準ライブラリ含まれる、日付と時刻の操作を実装する関数群です。 [1]これらの関数は、時刻の取得、日付形式の変換、文字列へのフォーマットされた出力をサポートします

歴史

で使用されるフォーマット文字列は、strftime少なくとも1977年にリリースされたPWB/UNIX 1.0にまで遡ります。そのdateシステムコマンドには、さまざまなフォーマットオプションが含まれています。[2] [3]strftime 1989年には、その他の日付と時刻関数を含むANSI C標準がリリースされました。 [4]

機能の概要

C の日付と時刻の操作は、<time.h> ヘッダー ファイル( C++<ctime>では header ) で定義されています。

識別子説明
時間
操作
difftimetime_t2つの値の差を秒単位で計算します
timeシステムの現在の時刻time_tを秒数で返します(通常はエポック(典型的にはUnixエポック)からの経過時間です)。エポックの値はオペレーティングシステムに依存し、1900と1970がよく使用されます。RFC 868を参照してください。
clockプロセスに関連付けられたプロセッサティックカウントを返します。
timespec_get(C11)時間ベースに基づいてカレンダー時間を返します
フォーマット
変換
asctimestruct tmオブジェクトをテキスト表現に変換します(非推奨)
ctimetime_t値をテキスト表現に変換する
strftimestruct tmオブジェクトをカスタムテキスト表現に変換します
strptime時間情報を含む文字列をstruct tm
wcsftimestruct tmオブジェクトをカスタムワイド文字列のテキスト表現に変換します
gmtime値を協定世界時time_tで表される暦時間に変換する[5]
localtimetime_t値を現地時間で表現されたカレンダー時間に変換します
mktimeカレンダー時間をtime_t値に変換します。
定数CLOCKS_PER_SEC1秒あたりのプロセッサクロック数
TIME_UTCUTCのタイムベース
種類struct tm内訳カレンダーの時間タイプ: 年、月、日、時、分、秒
time_t算術時刻型(通常はUnixエポックからの時間)
clock_tプロセス実行時間の種類
struct timespec秒とナノ秒で表した時間

およびtimespec関連型は、もともとさまざまな時間ベースを提供するために Markus Kuhn によって提案されましたが、TIME_UTC受け入れられたのは のみでした。[6]ただし、これらの機能は1998 年のC++20のリリースでC++に追加されました。std::chrono

次の C ソース コードは、現在の時刻を標準出力ストリームに出力します。

#include <stdio.h> #include <stdlib.h> #include <time.h>   int main ( void ) { time_t現在の時刻; char * c_time_string ;       // 現在の時刻を取得します。current_time = time ( NULL ) ;    if ( current_time == (( time_t ) -1 )) { fprintf ( stderr , "現在の時刻を取得できませんでした。\n " ); return EXIT_FAILURE ; }          //ローカル時刻形式に変換します。c_time_string = ctime ( & current_time );    if ( ! c_time_string ) { fprintf ( stderr , "現在の時刻の変換に失敗しました。\n " ); return EXIT_FAILURE ; }        // stdout に出力します。ctime() はすでに終了の改行文字を追加しています。printf ( " Current time is %s" , c_time_string ); return EXIT_SUCCESS ; }    

出力は次のようになります。

現在の時刻は2016年9月15日木曜日21時18分23秒です

参照

参考文献

  1. ^ ISO/IEC 9899:1999 仕様(PDF) . p. 351, § 7.32.2.
  2. ^ 「PWB1日付システムコマンド - マニュアルページ」www.tuhs.org
  3. ^ 「PWB1のdate.cソースコード」www.tuhs.org
  4. ^ 「米国情報システム規格 - プログラミング言語 - C - 日付と時刻の根拠」www.lysator.liu.se
  5. ^ open-std.org - 委員会草案 -- 2005年5月6日 355ページ
  6. ^ Markus Kuhn. 「ISO C向けの最新API」. cl.cam.ac.uk .
「https://en.wikipedia.org/w/index.php?title=C_date_and_time_functions&oldid=1310937739#localtime」から取得