gmtime_s、_gmtime32_s、_gmtime64_sgmtime_s, _gmtime32_s, _gmtime64_s

時刻値に変換するtm構造体。Converts a time value to a tm structure. これらは、「Security Features in the CRT」 (CRT のセキュリティ機能) で説明されているように、セキュリティが強化されたバージョンの _gmtime32、_gmtime64 です。These are versions of _gmtime32, _gmtime64 with security enhancements as described in Security Features in the CRT.

構文Syntax

errno_t gmtime_s(
   struct tm* tmDest,
   const __time_t* sourceTime
);
errno_t _gmtime32_s(
   struct tm* tmDest,
   const __time32_t* sourceTime
);
errno_t _gmtime64_s(
   struct tm* tmDest,
   const __time64_t* sourceTime
);

パラメーターParameters

tmDesttmDest
ポインターをtm構造体。Pointer to a tm structure. 返される構造体のフィールドの評価値を保持する、タイマー現地時刻ではなく UTC での引数。The fields of the returned structure hold the evaluated value of the timer argument in UTC rather than in local time.

sourceTimesourceTime
格納されている時刻へのポインター。Pointer to stored time. 時刻は、世界協定時刻 (UTC: Coordinated Universal Time) の 1970 年 1 月 1 日の深夜 00:00:00 から経過した時間 (秒単位) を表します。The time is represented as seconds elapsed since midnight (00:00:00), January 1, 1970, coordinated universal time (UTC).

戻り値Return Value

正常終了した場合は 0。Zero if successful. 障害が発生した場合、戻り値はエラー コードを示します。The return value is an error code if there is a failure. エラー コードは Errno.h で定義されます。これらのエラーの一覧については、errno をご覧ください。Error codes are defined in Errno.h; for a listing of these errors, see errno.

エラー条件Error Conditions

tmDesttmDest sourceTimesourceTime ReturnReturn tmDestValue in tmDest
NULLNULL 任意any EINVALEINVAL 変更されません。Not modified.
いないNULL (有効なメモリを指す)Not NULL (points to valid memory) NULLNULL EINVALEINVAL すべてのフィールドが-1 に設定されます。All fields set to -1.
いないNULLNot NULL < 0< 0 EINVALEINVAL すべてのフィールドが-1 に設定されます。All fields set to -1.

最初の 2 つのエラーの場合は、「Parameter Validation」 (パラメーターの検証) に説明されているとおり、無効なパラメーター ハンドラーが呼び出されます。In the case of the first two error conditions, the invalid parameter handler is invoked, as described in Parameter Validation. 実行の継続が許可された場合に、これらの関数が設定errnoEINVAL戻ってEINVALします。If execution is allowed to continue, these functions set errno to EINVAL and return EINVAL.

RemarksRemarks

_Gmtime32_s関数、 sourceTime値し、型の構造体に格納tmTime.h に定義します。The _gmtime32_s function breaks down the sourceTime value and stores it in a structure of type tm, defined in Time.h. 構造体のアドレスが渡されたtmDestします。The address of the structure is passed in tmDest. sourceTimeへの呼び出しは通常、時間関数。The value of sourceTime is usually obtained from a call to the time function.

注意

対象の環境によって、夏時間が有効かどうか判断されます。The target environment should try to determine whether daylight savings time is in effect. C ランタイム ライブラリでは、アメリカ合衆国の規則を前提に夏時間を計算します。The C run-time library assumes the United States rules for implementing the calculation of daylight saving time .

型の構造体のフィールドの各はint、次の表に示すようにします。Each of the structure fields is of type int, as shown in the following table.

フィールドField 説明Description
tm_sectm_sec 秒 (0 - 59)。Seconds after minute (0 - 59).
tm_mintm_min 分 (0 - 59)。Minutes after hour (0 - 59).
tm_hourtm_hour 午前 0 時からの経過時間 (0 - 23)。Hours since midnight (0 - 23).
tm_mdaytm_mday (1 ~ 31) の月の日。Day of month (1 - 31).
tm_montm_mon 月 (0 - 11年 1 月 = 0 です)。Month (0 - 11; January = 0).
tm_yeartm_year 年 (実際の西暦から 1900 を引いた数)Year (current year minus 1900).
tm_wdaytm_wday 週の曜日 (0 ~ 6 です。日曜日 = 0)。Day of week (0 - 6; Sunday = 0).
tm_ydaytm_yday 年の通算日 (0 - 365;1 月 1 日 = 0)。Day of year (0 - 365; January 1 = 0).
tm_isdsttm_isdst 常に 0 のgmtime_sします。Always 0 for gmtime_s.

_gmtime64_s、使用、 _ _time64_t構造体、ことができますを UTC; 3000 年 12 月 31 日 23時 59分: 59 秒を表す日付gmtime32_sしかまでの日付を表す23時 59分: 59、2038 年 1 月 18 日 UTC。_gmtime64_s, which uses the __time64_t structure, allows dates to be expressed up through 23:59:59, December 31, 3000, UTC; whereas gmtime32_s only represent dates through 23:59:59 January 18, 2038, UTC. これらの関数の日付範囲の下限は、どちらも 1970 年 1 月 1 日の午前 0 時です。Midnight, January 1, 1970, is the lower bound of the date range for both these functions.

gmtime_sに評価されるインライン関数は、 _gmtime64_stime_tと等価 _ _time64_tします。gmtime_s is an inline function which evaluates to _gmtime64_s and time_t is equivalent to __time64_t. 強制的にコンパイラを解釈する必要がある場合time_t古い 32 ビットとしてtime_tを定義できます _USE_32BIT_TIME_Tします。If you need to force the compiler to interpret time_t as the old 32-bit time_t, you can define _USE_32BIT_TIME_T. これによりgmtime_sをインラインにする _gmtime32_sします。Doing this will cause gmtime_s to be in-lined to _gmtime32_s. ただし、この方法は推奨されません。2038 年 1 月 18 日以降にアプリケーションがエラーになる可能性があり、また、64 ビット プラットフォームでは使用できないためです。This is not recommended because your application may fail after January 18, 2038, and it is not allowed on 64-bit platforms.

必要条件Requirements

ルーチンによって返される値Routine 必須の C ヘッダーRequired C header 必須の C++ ヘッダーRequired C++ header
gmtime_s_gmtime32_s_gmtime64_sgmtime_s, _gmtime32_s, _gmtime64_s <time.h><time.h> <ctime > または<time.h ><ctime> or <time.h>

互換性の詳細については、「 互換性」を参照してください。For more compatibility information, see Compatibility.

Example

// crt_gmtime64_s.c
// This program uses _gmtime64_s to convert a 64-bit
// integer representation of coordinated universal time
// to a structure named newtime, then uses asctime_s to
// convert this structure to an output string.

#include <time.h>
#include <stdio.h>

int main( void )
{
   struct tm newtime;
   __int64 ltime;
   char buf[26];
   errno_t err;

   _time64( &ltime );

   // Obtain coordinated universal time:
   err = _gmtime64_s( &newtime, &ltime );
   if (err)
   {
      printf("Invalid Argument to _gmtime64_s.");
   }

   // Convert to an ASCII representation
   err = asctime_s(buf, 26, &newtime);
   if (err)
   {
      printf("Invalid Argument to asctime_s.");
   }

   printf( "Coordinated universal time is %s\n",
           buf );
}
Coordinated universal time is Fri Apr 25 20:12:33 2003

関連項目See also

時間管理Time Management
asctime_s、_wasctime_sasctime_s, _wasctime_s
ctime、_ctime32、_ctime64、_wctime、_wctime32、_wctime64ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_ftime、_ftime32、_ftime64_ftime, _ftime32, _ftime64
gmtime、_gmtime32、_gmtime64gmtime, _gmtime32, _gmtime64
localtime_s、_localtime32_s、_localtime64_slocaltime_s, _localtime32_s, _localtime64_s
_mkgmtime、_mkgmtime32、_mkgmtime64_mkgmtime, _mkgmtime32, _mkgmtime64
mktime、_mktime32、_mktime64mktime, _mktime32, _mktime64
time、_time32、_time64time, _time32, _time64