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 日, UTC 之前表示日期。

  • 如果使用 _ctime32 或 _wctime32 和 time 表示一个日期。 03:14 后面: 一月 07 日 19 日 2038。

  • 如果使用 _ctime64 或 _wctime64 和 time 表示一个日期。 23:59 后面: 59, 3000 年十二月 31 日,, UTC。

ctime 是计算结果为 _ctime64,并 time_t与 __time64_t等效的内联函数。 如果需要强制编译器解释 time_t为旧 32 位 time_t,可以定义 _USE_32BIT_TIME_T。 这样做将导致 ctime计算为 _ctime32。 建议不要这样做,因为应用程序可以在 2038 年一月 18 日之后,失败,并且在 64 位平台不允许的。

备注

ctime 函数转换为 time_t 值存储的时间值转换为字符串。 timer 值在调用通常获取到 时间,返回秒数从 00:00 (午夜过后: 00), 1970 年一月 1 日,世界 (UTC)时 (utc)。 返回值字符串只包含 26 个字符并具有以下形式:

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

使用 24 小时制。 所有字段都有一个固定宽度。 换行符 (\ n “) 并将 null 字符 (“\ 0 ") 占据将字符串中的前两个位置。

转换后的字符字符串具体取决于本地时区设置也会调整。 有关定义时区环境和全局变量的详细信息,请参见 time、 _ftimelocaltime 功能有关配置本地时间和 _tzset 功能的信息。

为 ctime 的调用修改 gmtime 和 localtime 函数使用的唯一静态分配的缓冲区。 每次调用这些实例之一销毁结果的前一个调用。 ctime 与 asctime 函数共享一个静态缓冲区。 因此,对 ctime 的调用销毁结果的所有以前的调用 asctime、 localtime或 gmtime。

_wctime 和 _wctime64 是 ctime 的宽字符版本和 _ctime64;返回宽字符字符串的指针。 否则, _ctime64、 _wctime和 _wctime64 方法的行为与 ctime。

这些功能验证其参数。 如果 timer 是 null 指针,或者,如果计时器值为负,这些函数调用的参数无效处理程序,如 参数验证所述。 如果执行允许继续,函数返回 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 或 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
}
  

.NET Framework 等效项

请参见

参考

时间线

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