ctime、_ctime32、_ctime64、_wctime、_wctime32、_wctime64
轉換時間值成字串並為當地時區調整。 這些函式已有更安全的版本可用,請參閱 ctime_s、_ctime32_s、_ctime64_s、_wctime_s、_wctime32_s、_wctime64_s。
char *ctime(
const time_t *timer
);
char *_ctime32(
const __time32_t *timer )
;
char *_ctime64(
const __time64_t *timer )
;
wchar_t *_wctime(
const time_t *timer
);
wchar_t *_wctime32(
const __time32_t *timer
);
wchar_t *_wctime64(
const __time64_t *timer
);
參數
- timer
要儲存時間的指標。
傳回值
字元字串結果的指標。 NULL 會傳回,如果:
time 代表 1970 年 1 月 1 日,UTC 午夜之前的日期。
如果您使用 _ctime32 或 _wctime32 和 time 代表在 1 月 19 日 2038 年 03:14:07 之後的日期。
如果您使用 _ctime64 或 _wctime64 和 time 代表在 12 月 31 日 3000 年 23:59:59 之後的日期。
ctime 是 _ctime64 和 time_t 的評估與 __time64_t相等的內嵌函式。 如果您需要強制編譯器解譯 time_t 做為舊 32 位元 time_t,您可以定義 _USE_32BIT_TIME_T。 這麼做會使 ctime 評估為 _ctime32。 並不建議這麼做,因為您的應用程式可能在 2038 年 1 月 18 日之後無法使用,且它在 64 位元平台上是不允許的。
備註
ctime 函式將時間值儲存為 time_t 值至字串。 timer 值通常取自對 時間 的呼叫,傳回本地時間1970 年 1 月 1 日午夜算起的秒數 (00:00: 00),Coordinated Universal Time (UTC)。 傳回值字串完全包含 26 個字元且具有表單:
Wed Jan 02 02:03:55 1980\n\0
使用 24 小時制。 所有欄位具有相同的寬度。 新行字元('\n')和 null 字元(\0'')佔用字串的最後位置。
要轉換的字元字串也會根據當地時區設定調整。 如需定義時區環境和全域變數的詳細資訊,請參閱 time、 _ftime和 localtime 函式會配置於本地時間和 _tzset 函式的相關資訊。
呼叫 ctime 的方式修改單一靜態配置的 gmtime 和 localtime 函式所使用的緩衝區。 每個呼叫這些常式都會終結之前呼叫的結果。 ctime 與 asctime 函式共用一個靜態緩衝區。 因此,呼叫 ctime 的方式終結之前呼叫的結果為 asctime、 localtime或 gmtime。
_wctime 和 _wctime64 是 ctime 和 _ctime64 的寬字元版本,傳回寬字元字串的指標。 否則 _ctime64 和、 _wctime 和 _wctime64 與 ctime 的行為相同。
這些函式會驗證它們的參數。 如果 timer 是無效的檔案指標或者此計時器的值為負數時,這些函數會產生一個非正確指標處理式,如 參數驗證 所述。 如果允許繼續執行,函式會傳回 NULL 並將 errno 設定為 EINVAL。
一般文字常式對應
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> or <wchar.h> |
_wctime32 |
<time.h> or <wchar.h> |
_wctime64 |
<time.h> or <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( <ime );
printf( "The time is %s\n", _ctime64( <ime ) ); // C4996
// Note: _ctime64 is deprecated; consider using _ctime64_s
}
.NET Framework 對等用法
請參閱
參考
ctime_s、_ctime32_s、_ctime64_s、_wctime_s、_wctime32_s、_wctime64_s