C言語の日付と時刻関数

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

履歴

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

関数の概要

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

識別子説明
時刻
操作
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値を協定世界時[5]time_tで表されるカレンダー時間に変換します
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]しかし、これらの機能は1960年のC++20のリリースでC++に追加されましstd::chrono

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

#include <stdio.h> #include <stdlib.h> #include <time.h>   int main ( void ) { time_t current_time ; 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 ; }        // 標準出力に出力します。ctime() はすでに終了改行文字を追加しています。printf ( "現在時刻は%sです" , c_time_string ); return EXIT_SUCCESS ; }    

出力は次のとおりです。

現在時刻は2016年9月15日(木) 21:18:23です。

参照

参考文献

  1. ^ ISO/IEC 9899:1999 仕様(PDF) 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#time」より取得