C言語の日付と時刻関数
| C言語標準ライブラリ(libc) |
|---|
| 一般的なトピック |
| その他のヘッダー |
|
C言語の日付と時刻関数は、Cプログラミング言語の標準ライブラリにある、日付と時刻の操作を実装する関数のグループです。 [1]これらは、時刻の取得、日付形式の変換、および文字列へのフォーマットされた出力をサポートします。
履歴
で使用されるフォーマット文字列は、strftime少なくとも1977年にリリースされたPWB/UNIX 1.0dateにまで遡ります。そのシステムコマンドには、さまざまなフォーマットオプションが含まれています。[2] [3]strftime 1989年には、その他の日付と時刻関数を含むANSI C標準がリリースされました。 [4]
関数の概要
Cの日付と時刻の操作は、<time.h> ヘッダーファイル(C++<ctime>ではヘッダー)で定義されています。
| 識別子 | 説明 | |
|---|---|---|
| 時刻 操作 | difftime | time_t2つの値の差を秒数で計算します |
time | システムの現在の時刻time_tを値(秒数)として返します(通常はエポック(典型的にはUnixエポック)からの経過時間)。エポックの値はオペレーティングシステムに依存し、1900と1970がよく使用されます。RFC 868を参照してください。 | |
clock | プロセスに関連付けられたプロセッサのティックカウントを返します | |
timespec_get(C11) | タイムベースに基づいてカレンダー時刻を返します | |
| フォーマット 変換 | asctime | struct tmオブジェクトをテキスト表現に変換します(非推奨) |
ctime | time_t値をテキスト表現に変換します | |
strftime | struct tmオブジェクトをカスタムテキスト表現に変換します | |
strptime | 時間情報を含む文字列をstruct tm | |
wcsftime | struct tmオブジェクトをカスタムワイド文字列テキスト表現に変換します | |
gmtime | 値を協定世界時[5]time_tで表されるカレンダー時間に変換します | |
localtime | time_t値を現地時間で表現されたカレンダー時刻に変換します | |
mktime | カレンダー時刻を値に変換しますtime_t。 | |
| 定数 | CLOCKS_PER_SEC | 1秒あたりのプロセッサクロックティック数 |
TIME_UTC | UTCのタイムベース | |
| 型 | 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です。参照
参考文献
- ^ ISO/IEC 9899:1999 仕様(PDF) 351ページ、§7.32.2
- ^ "PWB1 日付システムコマンド - マニュアルページ". www.tuhs.org
- ^ "PWB1 の date.c ソースコード". www.tuhs.org
- ^ "情報システムのための米国国家規格 - プログラミング言語 - C - 日付と時刻の根拠". www.lysator.liu.se
- ^ open-std.org - 委員会草案 - 2005年5月6日 355ページ
- ^ Markus Kuhn. "ISO C の最新 API". cl.cam.ac.uk