共用方式為


gmtime,_gmtime32 _gmtime64

將時間值轉換成結構。 這些函式更安全版本都可使用; see 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
    預存時間的指標。 因為從午夜到現在所經過的秒數表示的時間 (00: 00: 00)、 1970 年 1 月 1,國際標準時間 (UTC)。

傳回值

傳回型別的結構的指標 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
    通常為 0 的gmtime。

這兩個 32 位元與 64 位元版本的gmtime, mktime, mkgmtime,以及localtime所有使用單一tm每個執行緒要轉換的結構。 每次呼叫一個函式會終結任何先前的呼叫的結果。 如果timer表示 1970 年 1 月 1 日,午夜以前的日期gmtime會傳回NULL。 沒有任何錯誤傳回。

_gmtime64使用__time64_t結構,可讓 23: 59: 59 之間,3000 年 12 月 31,成為 UTC,最多能表示的日期,而_gmtime32只能代表透過 03: 14: 07 以後 2038 年 1 月 19 日,UTC 日期。 午夜 1970 年 1 月 1 日,會為這些函式之日期範圍的下限。

gmtime是內嵌函式評估_gmtime64和time_t相當於__time64_t。 如果您要強制編譯器解譯time_t為舊的 32 位元time_t,您可以定義_USE_32BIT_TIME_T。 如此一來,這會導致gmtime是在-分行, _gmtime32。 建議您不要因為您的應用程式可能會失敗之後 2038 年 1 月 18 日,而且不允許在 64 位元平台上。

這些函式驗證他們的參數。 如果timer是空值的指標,或如果計時器值為負數,這些函式叫用無效的參數處理常式中所述參數驗證。 如果執行則允許繼續執行,則函數會傳回NULL ,並設定errno到EINVAL。

備註

_gmtime32函式會分解, timer值,並將它存放在靜態配置結構的型別tm,已定義的時間。H. 值為timer通常取自呼叫time函式。

注意事項注意事項

目標環境應該嘗試判斷是否日光節約時間生效。C 執行階段程式庫會假設執行計算的日光節約時間 (DST) 的美國規則。

需求

常式

所需的標頭

gmtime

<time.h>

_gmtime32

<time.h>

_gmtime64

<time.h>

其他的相容性資訊,請參閱相容性在簡介中。

範例

// 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 );
}
  

.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