time、_time32、_time64time, _time32, _time64

获取系统时间。Gets the system time.

语法Syntax

time_t time( time_t *destTime );
__time32_t _time32( __time32_t *destTime );
__time64_t _time64( __time64_t *destTime );

参数Parameters

destTimedestTime
指针指向时间的存储位置。Pointer to the storage location for time.

返回值Return Value

返回自午夜,自 1970 年 1 月 1 日,则在出错的情况下为-1 以来经过的秒的时间。Returns the time as seconds elapsed since midnight, January 1, 1970, or -1 in the case of an error.

备注Remarks

时间函数将返回自午夜以来经过的秒数 (00: 00:00) 自 1970 年 1 月 1 日,协调世界时 (UTC),根据系统时钟。The time function returns the number of seconds elapsed since midnight (00:00:00), January 1, 1970, Coordinated Universal Time (UTC), according to the system clock. 返回值存储在指定的位置destTimeThe return value is stored in the location given by destTime. 此参数可以为NULL,在这种情况下不存储返回值。This parameter may be NULL, in which case the return value is not stored.

时间是包装 _time64time_t ,默认情况下是等效于 __time64_ttime is a wrapper for _time64 and time_t is, by default, equivalent to __time64_t. 如果您需要强制编译器将解释time_t为旧的 32 位time_t,可以定义 _USE_32BIT_TIME_TIf you need to force the compiler to interpret time_t as the old 32-bit time_t, you can define _USE_32BIT_TIME_T. 不建议这样做,因为应用程序可能会在 2038 年 1 月 18 日后失效;64 位平台上不允许使用此宏。This is not recommended because your application may fail after January 18, 2038; the use of this macro is not allowed on 64-bit platforms.

要求Requirements

例程所返回的值Routine 必需的 C 标头Required C header 必需的 C++ 标头Required C++ header
时间_time32_time64time, _time32, _time64 <time.h><time.h> <ctime > 或<time.h ><ctime> or <time.h>

有关其他兼容性信息,请参阅 兼容性For additional compatibility information, see Compatibility.

示例Example

// crt_times.c
// compile with: /W3
// This program demonstrates these time and date functions:
//      time         _ftime    ctime_s     asctime_s
//      _localtime64_s    _gmtime64_s    mktime    _tzset
//      _strtime_s     _strdate_s  strftime
//
// Also the global variable:
//      _tzname
//
// Turn off deprecated unsafe CRT function warnings
#define _CRT_SECURE_NO_WARNINGS 1

#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/timeb.h>
#include <string.h>

int main()
{
    char tmpbuf[128], timebuf[26], ampm[] = "AM";
    time_t ltime;
    struct _timeb tstruct;
    struct tm today, gmt, xmas = { 0, 0, 12, 25, 11, 93 };
    errno_t err;

    // Set time zone from TZ environment variable. If TZ is not set,
    // the operating system is queried to obtain the default value
    // for the variable.
    //
    _tzset();

    // Display operating system-style date and time.
    _strtime_s( tmpbuf, 128 );
    printf( "OS time:\t\t\t\t%s\n", tmpbuf );
    _strdate_s( tmpbuf, 128 );
    printf( "OS date:\t\t\t\t%s\n", tmpbuf );

    // Get UNIX-style time and display as number and string.
    time( &ltime );
    printf( "Time in seconds since UTC 1/1/70:\t%lld\n", (long long)ltime );
    err = ctime_s(timebuf, 26, &ltime);
    if (err)
    {
        printf("ctime_s failed due to an invalid argument.");
        exit(1);
    }
    printf( "UNIX time and date:\t\t\t%s", timebuf );

    // Display UTC.
    err = _gmtime64_s( &gmt, &ltime );
    if (err)
    {
        printf("_gmtime64_s failed due to an invalid argument.");
    }
    err = asctime_s(timebuf, 26, &gmt);
    if (err)
    {
        printf("asctime_s failed due to an invalid argument.");
        exit(1);
    }
    printf( "Coordinated universal time:\t\t%s", timebuf );

    // Convert to time structure and adjust for PM if necessary.
    err = _localtime64_s( &today, &ltime );
    if (err)
    {
        printf("_localtime64_s failed due to an invalid argument.");
        exit(1);
    }
    if ( today.tm_hour >= 12 )
    {
        strcpy_s( ampm, sizeof(ampm), "PM" );
        today.tm_hour -= 12;
    }
    if ( today.tm_hour == 0 )  // Adjust if midnight hour.
        today.tm_hour = 12;

    // Convert today into an ASCII string
    err = asctime_s(timebuf, 26, &today);
    if (err)
    {
        printf("asctime_s failed due to an invalid argument.");
        exit(1);
    }

    // Note how pointer addition is used to skip the first 11
    // characters and printf is used to trim off terminating
    // characters.
    //
    printf( "12-hour time:\t\t\t\t%.8s %s\n",
        timebuf + 11, ampm );

    // Print additional time information.
    _ftime( &tstruct ); // C4996
    // Note: _ftime is deprecated; consider using _ftime_s instead
    printf( "Plus milliseconds:\t\t\t%u\n", tstruct.millitm );
    printf( "Zone difference in hours from UTC:\t%u\n",
             tstruct.timezone/60 );
    printf( "Time zone name:\t\t\t\t%s\n", _tzname[0] ); //C4996
    // Note: _tzname is deprecated; consider using _get_tzname
    printf( "Daylight savings:\t\t\t%s\n",
             tstruct.dstflag ? "YES" : "NO" );

    // Make time for noon on Christmas, 1993.
    if( mktime( &xmas ) != (time_t)-1 )
    {
        err = asctime_s(timebuf, 26, &xmas);
        if (err)
        {
            printf("asctime_s failed due to an invalid argument.");
            exit(1);
        }
        printf( "Christmas\t\t\t\t%s\n", timebuf );
    }

    // Use time structure to build a customized time string.
    err = _localtime64_s( &today, &ltime );
    if (err)
    {
        printf(" _localtime64_s failed due to invalid arguments.");
        exit(1);
    }

    // Use strftime to build a customized time string.
    strftime( tmpbuf, 128,
              "Today is %A, day %d of %B in the year %Y.\n", &today );
    printf( tmpbuf );
}
OS time:            13:51:23
OS date:            04/25/03
Time in seconds since UTC 1/1/70:   1051303883
UNIX time and date:         Fri Apr 25 13:51:23 2003
Coordinated universal time:      Fri Apr 25 20:51:23 2003
12-hour time:            01:51:23 PM
Plus milliseconds:         552
Zone difference in hours from UTC:   8
Time zone name:            Pacific Standard Time
Daylight savings:         YES
Christmas            Sat Dec 25 12:00:00 1993

Today is Friday, day 25 of April in the year 2003.

请参阅See also

时间管理Time Management
asctime、_wasctimeasctime, _wasctime
asctime_s、_wasctime_sasctime_s, _wasctime_s
_ftime, _ftime32, _ftime64_ftime, _ftime32, _ftime64
gmtime、_gmtime32、_gmtime64gmtime, _gmtime32, _gmtime64
gmtime_s、_gmtime32_s、_gmtime64_sgmtime_s, _gmtime32_s, _gmtime64_s
localtime、_localtime32、_localtime64localtime, _localtime32, _localtime64
localtime_s、_localtime32_s、_localtime64_slocaltime_s, _localtime32_s, _localtime64_s
_utime、_utime32、_utime64、_wutime、_wutime32、_wutime64_utime, _utime32, _utime64, _wutime, _wutime32, _wutime64