time、_time64

Visual Studio .NET 2003

システム時刻を取得します。

time_t time(
   time_t *timer 
);
__time64_t _time64(
   __time64_t *timer 
);

パラメータ

timer
時刻の格納場所へのポインタ。

戻り値

時刻を経過秒数で返します。エラーの戻り値はありません。

関数に以下の日付が渡された場合、time または _time64 の呼び出しは失敗します。

  • 1970 年 1 月 1 日の 0 時以前。
  • 世界協定時刻 (UTC: Coordinated Universal Time) 2038 年 1 月 18 日 19 時 14 分 07 秒以降 (timetime_t を使用する場合)。
  • UTC 3000 年 12 月 31 日 23 時 59 分 59 秒以降 (_time64__time64_t を使用する場合)。

解説

time 関数は、システム時計に従って UTC 1970 年 1 月 1 日の 0 時 (00:00:00) 以降の経過秒数を返します。戻り値は、timer で指定した位置に格納されます。パラメータ timer には NULL を指定できますが、その場合戻り値は格納されません。

必要条件

ルーチン 必須ヘッダー 互換性
time <time.h> ANSI、Win 98、Win Me、Win NT、Win 2000、Win XP
_time64 <time.h> Win 98、Win Me、Win NT、Win 2000、Win XP

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

ライブラリ

C ランタイム ライブラリのすべてのバージョン。

// crt_times.c
/* This program demonstrates these time and date functions:
 *      _time64         _ftime64        _ctime64     asctime
 *      _localtime64    _gmtime64       _mktime64    _tzset
 *      _strtime        _strdate        strftime
 *
 * Also the global variable:
 *      _tzname
 */

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

int main()
{
    char tmpbuf[128], ampm[] = "AM";
    __time64_t ltime;
    struct __timeb64 tstruct;
    struct tm *today, *gmt, xmas = { 0, 0, 12, 25, 11, 93 };

    /* 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( tmpbuf );
    printf( "OS time:\t\t\t\t%s\n", tmpbuf );
    _strdate( tmpbuf );
    printf( "OS date:\t\t\t\t%s\n", tmpbuf );

    /* Get UNIX-style time and display as number and string. */
    _time64( &ltime );
    printf( "Time in seconds since UTC 1/1/70:\t%ld\n", ltime );
    printf( "UNIX time and date:\t\t\t%s", _ctime64( &ltime ) );

    /* Display UTC. */
    gmt = _gmtime64( &ltime );
    printf( "Coordinated universal time:\t\t%s", asctime( gmt ) );

    /* Convert to time structure and adjust for PM if necessary. */
    today = _localtime64( &ltime );
    if( today->tm_hour >= 12 )
    {
   strcpy( ampm, "PM" );
   today->tm_hour -= 12;
    }
    if( today->tm_hour == 0 )  /* Adjust if midnight hour. */
   today->tm_hour = 12;

    /* 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",
       asctime( today ) + 11, ampm );

    /* Print additional time information. */
    _ftime64( &tstruct );
    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] );
    printf( "Daylight savings:\t\t\t%s\n", 
             tstruct.dstflag ? "YES" : "NO" );

    /* Make time for noon on Christmas, 1993. */
    if( _mktime64( &xmas ) != (__time64_t)-1 )
   printf( "Christmas\t\t\t\t%s\n", asctime( &xmas ) );

    /* Use time structure to build a customized time string. */
    today = _localtime64( &ltime );

    /* 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:                                14:15:49
OS date:                                02/07/02
Time in seconds since UTC 1/1/70:       1013120149
UNIX time and date:                     Thu Feb 07 14:15:49 2002
Coordinated universal time:             Thu Feb 07 22:15:49 2002
12-hour time:                           02:15:49 PM
Plus milliseconds:                      455
Zone difference in hours from UTC:      8
Time zone name:                         Pacific Standard Time
Daylight savings:                       NO
Christmas                               Sat Dec 25 12:00:00 1993

Today is Thursday, day 07 of February in the year 2002.

参照

時間管理 | asctime | _ftime | gmtime | localtime | _utime | ランタイム ルーチンおよび同等の .NET Framework 関数

表示: