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表示 2038 年 1 月 19 日 03:14:07之后的日期。

  • 如果使用 _ctime64或 _wctime64和time 表示 3000,12月 31 日, 23:59:59, UTC之后的日期。

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 值一直通过调用 时间获得,返回从(00:00 :00),1970 年 1 月 1 日,协调通用时间 (UTC)开始的秒数。 返回字符串正好包含 26 个字符并具有以下形式:

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

使用 24 小时制。 所有字段都具有一个常数的宽度。 换行符 ("\n")和空字符 (“\0") 占用字符串中最后两个位置。

转换的字符串本地根据的时区设置也会调整。 有关配置本地时间的函数,请参见 time、_ftimelocaltime32_s ,以及 _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( &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