gmtime_r() — 時間の変換 (再始動可能)
フォーマット
#include <time.h>
struct tm *gmtime_r(const time_t *time, struct tm *result);
言語レベル
XPG4
スレッド・セーフ
はい
説明
この関数は、gmtime() の再始動可能バージョンです。
gmtime_r() 関数は、time 値を秒単位で分割し、result に保管します。result は、<time.h> で定義された tm 構造体を指すポインターです。time 値は、通常、time() 関数を呼び出して取得します。
tm 構造体のフィールドには、以下のものがあります。
- tm_sec
- 秒 (0 から 61)
- tm_min
- 分 (0 から 59)
- tm_hour
- 時間 (0 から 23)
- tm_mday
- 日 (1 から 31)
- tm_mon
- 月 (0 から 11、1 月が 0 になる)
- tm_year
- 年 (現在の年から 1900 を差し引く)
- tm_wday
- 曜日 (0 から 6、日曜日が 0 になる)
- tm_yday
- ユリウス日付 (0 から 365、1 月 1 日が 0 になる)
- tm_isdst
- 夏時間 (DST) が無効な場合は 0。夏時間 (DST) が有効な場合は正の値。情報が使用可能でない場合は負の値。
戻り値
gmtime_r() 関数は、結果である tm 構造体へポインターを戻します。
注:
- tm_sec の範囲 (0 から 61) は、2 うるう秒までを考慮に入れています。
- gmtime() および localtime() 関数は、静的に割り振られた共通のバッファーを変換に使用します。 これらの関数の 1 つを呼び出すごとに、以前の呼び出しの結果を変更します。asctime_r()、ctime_r()、gmtime_r()、および localtime_r() 関数は、戻りストリングの保持用に静的に割り振られた共通のバッファーを使用しません。 これらの関数は、再入可能性が望ましい場合に、asctime(), ctime()、gmtime()、および localtime() 関数の代わりに使用可能です。
- カレンダー時間とは、エポックである UTC (1970 年 1 月 1 日 00:00:00) から数えた秒数です。
例
この例では、gmtime_r() 関数を使用して time_t 表記を協定世界時 (UTC) 文字ストリングへ調整し、次にそれを asctime_r() 関数を使用して出力可能なストリングに変換します。
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t ltime;
struct tm mytime;
char buf[50];
time(<ime)
printf ("Coordinated Universal Time is %s\n",
asctime_r(gmtime_r(<ime, &mytime), buf));
}
/************************ Output should be similar to: **********
Coordinated Universal Time is Wed Aug 18 21:01:44 1993
*/
関連情報
- asctime() — 時間から文字ストリングへの変換
- asctime_r() — 時間から文字ストリングへの変換 (再始動可能)
- ctime() — 時間から文字ストリングへの変換
- ctime64() — 時間から文字ストリングへの変換
- ctime64_r() — 時間から文字ストリングへの変換 (再始動可能)
- ctime_r() — 時間から文字ストリングへの変換 (再始動可能)
- gmtime() — 時間の変換
- gmtime64() — 時間の変換
- gmtime64_r() — 時間の変換 (再始動可能)
- localtime() — 時間の変換
- localtime64() — 時間の変換
- localtime64_r() — 時間の変換 (再始動可能)
- localtime_r() — 時間の変換 (再始動可能)
- mktime() — 地方時の変換
- mktime64() — 地方時の変換
- time() — 現在時刻の判別
- time64() — 現在時刻の判別
- <time.h>