共用方式為


ctime、、_ctime32_ctime64_wctime、、_wctime32_wctime64

將時間值轉換為字串並針對當地時區設定調整。 這些函式已有更安全的版本可用,請參閱 ctime_s_ctime32_s_ctime64_s_wctime_s_wctime32_s_wctime64_s

語法

char *ctime( const time_t *sourceTime );
char *_ctime32( const __time32_t *sourceTime );
char *_ctime64( const __time64_t *sourceTime );
wchar_t *_wctime( const time_t *sourceTime );
wchar_t *_wctime32( const __time32_t *sourceTime );
wchar_t *_wctime64( const __time64_t *sourceTime );

參數

sourceTime
要轉換之儲存時間的指標。

傳回值

字元字串結果的指標。 NULL 會在:

  • sourceTime 代表 1970 年 1 月 1 日午夜 (UTC) 以前的日期。

  • _ctime32您使用 或 _wctime32,並sourceTime代表 2038 年 1 月 18 日 23:59:59 之後的日期。

  • _ctime64您可以使用 或 _wctime64,並sourceTime代表UTC 23:59:59、12月31日、3000年12月31日之後的日期。

ctime 是評估為 _ctime64 的內嵌函式,而 time_t 相當於 __time64_t。 如果您要強制編譯器將 time_t 解譯為舊的 32 位元 time_t,您可以定義 _USE_32BIT_TIME_T。 此巨集會導致 ctime 評估為 _ctime32。 不建議您使用它,因為您的應用程式可能會在 2038 年 1 月 18 日之後失敗,而且 64 位平臺上不允許它。

備註

ctime 式會將儲存為 time_t 值的時間值轉換成字元字串。 值 sourceTime 通常是從呼叫 time取得,其會傳回自午夜 (00:00:00)之後經過的秒數,1970 年 1 月 1 日,國際標準時間 (UTC)。 傳回值字串剛好包含 26 個字元,且具有以下格式:

Wed Jan 02 02:03:55 1980\n\0

使用 24 小時制。 所有欄位都具有固定寬度。 新行字元 ('\n') 和 null 字元 ('\0') 佔用字串的最後兩個位置。

已轉換的字元字串也會根據當地時區設定調整。 如需設定當地時間的資訊,請參閱 time_ftimelocaltime 函式。 如需定義時區環境和全域變數的詳細資訊,請參閱 函式 _tzset

呼叫 ctime 可修改 gmtimelocaltime 函式所使用之單一靜態配置的緩衝區。 每呼叫其中一個此類常式會導致先前呼叫結果的終結。 ctime 會與 asctime 函式共用靜態緩衝區。 因此,呼叫 ctime 會終結任何先前對 asctimelocaltimegmtime 的呼叫結果。

_wctime_wctime64 是寬字元版本的 ctime_ctime64,並會傳回寬字元字串的指標。 否則,_ctime64_wctime_wctime64 的行為與 ctime 相同。

這些函式會驗證它們的參數。 如果 sourceTime 是 Null 指標,或者sourceTime如果值為負數,則這些函式會叫用無效的參數處理程式,如參數驗證中所述。 如果允許繼續執行,這些函式會傳回 NULL,並將 errno 設定為 EINVAL

根據預設,此函式的全域狀態會限定於應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態

一般文字常式對應

TCHAR.H 常式 _UNICODE_MBCS 未定義 _MBCS 已定義 _UNICODE 已定義
_tctime ctime ctime _wctime
_tctime32 _ctime32 _ctime32 _wctime32
_tctime64 _ctime64 _ctime64 _wctime64

需求

常式 必要的標頭
ctime <time.h>
_ctime32 <time.h>
_ctime64 <time.h>
_wctime <time.h> 或 <wchar.h>
_wctime32 <time.h> 或 <wchar.h>
_wctime64 <time.h> 或 <wchar.h>

如需相容性詳細資訊,請參閱相容性

範例

// crt_ctime64.c
// compile with: /W3
/* This program gets the current
* time in _time64_t form, then uses ctime to
* display the time in string form.
*/

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

int main( void )
{
   __time64_t ltime;

   _time64( &ltime );
   printf( "The time is %s\n", _ctime64( &ltime ) ); // C4996
   // Note: _ctime64 is deprecated; consider using _ctime64_s
}
The time is Wed Feb 13 16:04:43 2002

另請參閱

時間管理
asctime, _wasctime
ctime_s、、_ctime32_s_ctime64_s_wctime_s、、_wctime32_s_wctime64_s
_ftime、 、 _ftime32_ftime64
gmtime、 、 _gmtime32_gmtime64
localtime、 、 _localtime32_localtime64
time、 、 _time32_time64