_ftime_s、_ftime32_s、_ftime64_s_ftime_s, _ftime32_s, _ftime64_s

現在の時刻を取得します。Gets the current time. これらは、「CRT のセキュリティ機能」で説明されているように、セキュリティが強化されたバージョンの _ftime、_ftime32、_ftime64 です。These are versions of _ftime, _ftime32, _ftime64 with security enhancements as described in Security Features in the CRT.

構文Syntax

errno_t _ftime_s( struct _timeb *timeptr );
errno_t _ftime32_s( struct __timeb32 *timeptr );
errno_t _ftime64_s( struct __timeb64 *timeptr );

パラメーターParameters

timeptrtimeptr
_Timeb__timeb32、または __timeb64構造体へのポインター。Pointer to a _timeb, __timeb32, or __timeb64 structure.

戻り値Return Value

正常終了した場合は 0 を返します。失敗した場合はエラー コードを返します。Zero if successful, an error code on failure. TimeptrNULLの場合、戻り値はEINVALになります。If timeptr is NULL, the return value is EINVAL.

解説Remarks

_Ftime_s関数は、現在の現地時刻を取得し、 timeptrによって示される構造体に格納します。The _ftime_s function gets the current local time and stores it in the structure pointed to by timeptr. _Timeb__timeb32、および __timeb64構造体は、sysに定義されています。The _timeb, __timeb32, and __timeb64 structures are defined in SYS\Timeb.h. これらは、次の表に示す 4 つのフィールドを含んでいます。They contain four fields, which are listed in the following table.

フィールドField 説明Description
dstflagdstflag ローカルのタイム ゾーンで夏時間が現在有効になっている場合は 0 以外の値です Nonzero if daylight savings time is currently in effect for the local time zone. (夏時間を判断する方法の詳細については、_tzset を参照してください)。(See _tzset for an explanation of how daylight savings time is determined.)
millitmmillitm ミリ秒単位での秒の小数部。Fraction of a second in milliseconds.
timetime 世界協定時刻 (UTC: Coordinated Universal Time) の 1970 年 1 月 1 日の深夜 00:00:00 から経過した時間 (秒単位)。Time in seconds since midnight (00:00:00), January 1, 1970, coordinated universal time (UTC).
部分timezone 西に移動するときの UTC と現地時刻の間の差 (分単位)。Difference in minutes, moving westward, between UTC and local time. タイムゾーンの値は、グローバル変数 _timezoneの値から設定されます ( _tzsetを参照してください)。The value of timezone is set from the value of the global variable _timezone (see _tzset).

__Timeb64構造体を使用する _ftime64_s関数を使用すると、ファイル作成日を3000年12月31日23:59:59 までに表すことができます。_ftime32_sは、23:59:59 年1月18日から2038日までの日付のみを表します。The _ftime64_s function, which uses the __timeb64 structure, allows file-creation dates to be expressed up through 23:59:59, December 31, 3000, UTC; whereas _ftime32_s only represents dates through 23:59:59 January 18, 2038, UTC. これらの関数の日付範囲の下限は、いずれも 1970 年 1 月 1 日の午前 0 時です。Midnight, January 1, 1970, is the lower bound of the date range for all these functions.

_Ftime_s関数は _ftime64_sと同じです。 _USE_32BIT_TIME_Tが定義されていない限り、 _timebには64ビットの時刻が含まれます。この場合、以前の動作が有効になります。_ftime_sは32ビットの時刻を使用し、 _timebに32ビットの時刻が含まれています。The _ftime_s function is equivalent to _ftime64_s, and _timeb contains a 64-bit time, unless _USE_32BIT_TIME_T is defined, in which case the old behavior is in effect; _ftime_s uses a 32-bit time and _timeb contains a 32-bit time.

_ftime_sは、そのパラメーターを検証します。_ftime_s validates its parameters. Timeptrとして null ポインターが渡された場合、関数は、「パラメーターの検証」で説明されているように、無効なパラメーターハンドラーを呼び出します。If passed a null pointer as timeptr, the function invokes the invalid parameter handler, as described in Parameter Validation. 実行の継続が許可された場合、関数はerrnoEINVALに設定します。If execution is allowed to continue, the function sets errno to EINVAL.

既定では、この関数のグローバル状態はアプリケーションにスコープが設定されています。By default, this function's global state is scoped to the application. これを変更するには、「 CRT でのグローバル状態」を参照してください。To change this, see Global state in the CRT.

必要条件Requirements

関数Function 必須ヘッダーRequired header
_ftime_s_ftime_s <sys/types.h> と <sys/timeb.h><sys/types.h> and <sys/timeb.h>
_ftime32_s_ftime32_s <sys/types.h> と <sys/timeb.h><sys/types.h> and <sys/timeb.h>
_ftime64_s_ftime64_s <sys/types.h> と <sys/timeb.h><sys/types.h> and <sys/timeb.h>

互換性について詳しくは、「 Compatibility」をご覧ください。For more compatibility information, see Compatibility.

ライブラリLibraries

C ランタイム ライブラリのすべてのバージョン。All versions of the C run-time libraries.

Example

// crt_ftime64_s.c
// This program uses _ftime64_s to obtain the current
// time and then stores this time in timebuffer.

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

int main( void )
{
   struct _timeb timebuffer;
   char timeline[26];
   errno_t err;
   time_t time1;
   unsigned short millitm1;
   short timezone1;
   short dstflag1;

   _ftime64_s( &timebuffer );

    time1 = timebuffer.time;
    millitm1 = timebuffer.millitm;
    timezone1 = timebuffer.timezone;
    dstflag1 = timebuffer.dstflag;

   printf( "Seconds since midnight, January 1, 1970 (UTC): %I64d\n",
   time1);
   printf( "Milliseconds: %d\n", millitm1);
   printf( "Minutes between UTC and local time: %d\n", timezone1);
   printf( "Daylight savings time flag (1 means Daylight time is in "
           "effect): %d\n", dstflag1);

   err = ctime_s( timeline, 26, & ( timebuffer.time ) );
   if (err)
   {
       printf("Invalid argument to ctime_s. ");
   }
   printf( "The time is %.19s.%hu %s", timeline, timebuffer.millitm,
           &timeline[20] );
}
Seconds since midnight, January 1, 1970 (UTC): 1051553334
Milliseconds: 230
Minutes between UTC and local time: 480
Daylight savings time flag (1 means Daylight time is in effect): 1
The time is Mon Apr 28 11:08:54.230 2003

関連項目See also

時間管理Time Management
asctime、_wasctimeasctime, _wasctime
ctime、_ctime32、_ctime64、_wctime、_wctime32、_wctime64ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
gmtime、_gmtime32、_gmtime64gmtime, _gmtime32, _gmtime64
localtime、_localtime32、_localtime64localtime, _localtime32, _localtime64
time、_time32、_time64time, _time32, _time64