次の方法で共有


gmtime、_gmtime32、_gmtime64

更新 : 2007 年 11 月

時刻の値を構造体に変換します。これらの関数のセキュリティを強化したバージョンについては、「_gmtime_s、_gmtime32_s、_gmtime64_s」を参照してください。

struct tm *gmtime( 
   const time_t *timer 
);
struct tm *_gmtime32( 
   const time32_t *timer 
);
struct tm *_gmtime64( 
   const __time64_t *timer 
);

パラメータ

  • timer
    格納されている時刻へのポインタ。時刻は、世界協定時刻 (UTC: Coordinated Universal Time) の 1970 年 1 月 1 日の深夜 00:00:00 から経過した時間 (秒単位) を表します。

戻り値

tm 型の構造体へのポインタを返します。返された構造体の各フィールドには、timer 引数を現地時刻ではなく UTC で評価した値が格納されています。構造体には、次に示す int 型のフィールドがあります。

  • tm_sec
    秒 (0 ~ 59)。

  • 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
    gmtime では常に 0。

32 ビット バージョンおよび 64 ビット バージョンの gmtime、mktime、mkgmtime、localtime の各関数はすべて、1 スレッドあたり 1 つの tm 構造体を使用して変換を行います。これらの関数を呼び出すたびに、前の呼び出しの結果は破棄されます。timer が 1970 年 1 月 1 日の深夜午前 0 時よりも前の日付を示している場合、gmtime は NULL を返します。エラーの戻り値はありません。

__time64_t 構造体を使用する _gmtime64 は、UTC の 3000 年 12 月 31 日の 23 時 59 分 59 秒までの日付を表すことができます。それに対して、_gmtime32 は、UTC の 2038 年 1 月 19 日の 03 時 14 分 07 秒までしか表すことができません。これらの関数の日付範囲の下限は、どちらも 1970 年 1 月 1 日の午前零時です。

Visual C++ 2005 では、gmtime は、_gmtime64 に評価されるインライン関数であり、time_t は __time64_t と等価です。コンパイラが time_t を従来の 32 ビット time_t として解釈するようにするには、_USE_32BIT_TIME_T を定義します。この定義を行うことにより、gmtime は _gmtime32 にインライン展開されます。この方法はお勧めしません。2038 年 1 月 18 日以降にアプリケーションでエラーが発生する可能性があり、64 ビット プラットフォームでは使用できないためです。

これらの関数は、パラメータを検証します。timer が null ポインタの場合またはタイマ値が負の場合、「パラメータの検証」に説明されているように、これらの関数は無効なパラメータ ハンドラを呼び出します。実行の継続が許可された場合、関数は NULL を返し、errno を EINVAL に設定します。

解説

_gmtime32 関数は、timer 値を展開して、静的に割り当てられた tm 型の構造体に格納します。この構造体は TIME.H で定義されています。timer の値は、通常、time 関数の呼び出しで取得されます。

0z9czt0w.alert_note(ja-jp,VS.90).gifメモ :

対象の環境で夏時間が有効かどうかを確認してください。C ランタイム ライブラリでは、アメリカ合衆国の規則を前提に夏時間 (DST: Daylight Saving Time) を計算します。

必要条件

ルーチン

必須ヘッダー

gmtime

<time.h>

_gmtime32

<time.h>

_gmtime64

<time.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

// crt_gmtime.c
// compile with: /W3
// This program uses _gmtime64 to convert a long-
// integer representation of coordinated universal time
// to a structure named newtime, then uses asctime to
// convert this structure to an output string.
 
#include <time.h>
#include <stdio.h>

int main( void )
{
   struct tm *newtime;
   __int64 ltime;
   char buff[80];

   _time64( &ltime );

   // Obtain coordinated universal time:
   newtime = _gmtime64( &ltime ); // C4996
   // Note: _gmtime64 is deprecated; consider using _gmtime64_s
   asctime_s( buff, sizeof(buff), newtime );
   printf( "Coordinated universal time is %s\n", buff );
}

Coordinated universal time is Tue Feb 12 23:11:31 2002

.NET Framework の相当するアイテム

参照

参照

時間管理

asctime、_wasctime

ctime、_ctime32、_ctime64、_wctime、_wctime32、_wctime64

_ftime、_ftime32、_ftime64

_gmtime_s、_gmtime32_s、_gmtime64_s

localtime、_localtime32、_localtime64

_mkgmtime、_mkgmtime32、_mkgmtime64

mktime、_mktime32、_mktime64

time、_time32、_time64