localtime、_localtime32、_localtime64localtime, _localtime32, _localtime64

時刻値を変換し、ローカル タイム ゾーンに合わせて修正します。Converts a time value and corrects for the local time zone. これらの関数にはセキュリティを強化したバージョンがあります。localtime_s、_localtime32_s、_localtime64_s を参照してください。More secure versions of these functions are available; see localtime_s, _localtime32_s, _localtime64_s.

構文Syntax

struct tm *localtime( const time_t *sourceTime );
struct tm *_localtime32( const __time32_t *sourceTime );
struct tm *_localtime64( const __time64_t *sourceTime );

パラメーターParameters

sourceTimesourceTime
格納されている時刻へのポインター。Pointer to stored time.

戻り値Return Value

構造体の結果へのポインターを返しますまたはNULL日付が関数に渡される場合は。Return a pointer to the structure result, or NULL if the date passed to the function is:

  • 1970 年 1 月 1 日午前 0 時より前。Before midnight, January 1, 1970.

  • UTC 2038 年 1 月 19 日 03時 14分: 07 秒後 (を使用して _time32time32_t)。After 03:14:07, January 19, 2038, UTC (using _time32 and time32_t).

  • UTC 3000 年 12 月 31 日 23時 59分: 59 秒後 (を使用して _time64_ _time64_t)。After 23:59:59, December 31, 3000, UTC (using _time64 and __time64_t).

_localtime64、使用、 _ _time64_t構造体、ことができますを世界協定時刻 (UTC)、3000 年 12 月 31 日 23時 59分: 59 秒を表す日付 _localtime322038 年 1 月 18 日 23時 59分: 59 までの日付を表します。_localtime64, which uses the __time64_t structure, allows dates to be expressed up through 23:59:59, December 31, 3000, coordinated universal time (UTC), whereas _localtime32 represents dates through 23:59:59 January 18, 2038, UTC.

localtimeに評価されるインライン関数は、 _localtime64、およびtime_tと等価 _ _time64_tします。localtime is an inline function which evaluates to _localtime64, and time_t is equivalent to __time64_t. 強制的にコンパイラを解釈する必要がある場合time_t古い 32 ビットとしてtime_tを定義できます _USE_32BIT_TIME_Tします。If you need to force the compiler to interpret time_t as the old 32-bit time_t, you can define _USE_32BIT_TIME_T. これによりlocaltimeを評価する _localtime32します。Doing this will cause localtime to evaluate to _localtime32. ただし、この方法は推奨されません。2038 年 1 月 18 日以降にアプリケーションがエラーになる可能性があり、また、64 ビット プラットフォームでは使用できないためです。This is not recommended because your application may fail after January 18, 2038, and it is not allowed on 64-bit platforms.

構造体型のフィールドtmはそれぞれ、次の値を格納するint:The fields of the structure type tm store the following values, each of which is an int:

フィールドField 説明Description
tm_sectm_sec 秒 (0 - 59)。Seconds after minute (0 - 59).
tm_mintm_min 分 (0 - 59)。Minutes after hour (0 - 59).
tm_hourtm_hour 午前 0 時からの経過時間 (0 - 23)。Hours since midnight (0 - 23).
tm_mdaytm_mday (1 ~ 31) の月の日。Day of month (1 - 31).
tm_montm_mon 月 (0 - 11年 1 月 = 0 です)。Month (0 - 11; January = 0).
tm_yeartm_year 年 (実際の西暦から 1900 を引いた数)Year (current year minus 1900).
tm_wdaytm_wday 週の曜日 (0 ~ 6 です。日曜日 = 0)。Day of week (0 - 6; Sunday = 0).
tm_ydaytm_yday 年の通算日 (0 - 365;1 月 1 日 = 0)。Day of year (0 - 365; January 1 = 0).
tm_isdsttm_isdst 夏時間が有効な場合は正の値、夏時間が無効な場合は 0、夏時間かどうか状態が不明な場合は負の値。Positive value if daylight saving time is in effect; 0 if daylight saving time is not in effect; negative value if status of daylight saving time is unknown.

場合、 TZ環境変数が設定されている、C ランタイム ライブラリで規則を前提を米国に適切な夏時間 (DST) の計算の実装します。If the TZ environment variable is set, the C run-time library assumes rules appropriate to the United States for implementing the calculation of daylight-saving time (DST).

RemarksRemarks

Localtime関数として格納されている時刻の変換、 time_t値し、その結果の種類の構造に格納tmします。The localtime function converts a time stored as a time_t value and stores the result in a structure of type tm. 長いsourceTime午前 0 時以降の経過秒数を表します (00: 00:00)、UTC 1970 年 1 月 1 日です。The long value sourceTime represents the seconds elapsed since midnight (00:00:00), January 1, 1970, UTC. 通常、この値はから取得、時間関数。This value is usually obtained from the time function.

32 ビットおよび 64 ビット バージョンの両方gmtimemktimemkgmtime、およびlocaltime 、1 つを使用して、すべてtm変換スレッドごとの構造体。Both the 32-bit and 64-bit versions of gmtime, mktime, mkgmtime, and localtime all use a single tm structure per thread for the conversion. これらのルーチンを呼び出すたびに、前の呼び出しの結果は破棄されます。Each call to one of these routines destroys the result of the previous call.

localtime 、ユーザーが最初にグローバル環境変数を設定する場合、ローカル タイム ゾーンに合わせて修正TZします。localtime corrects for the local time zone if the user first sets the global environment variable TZ. ときにTZ設定は、その他の 3 つの環境変数 (_timezone_daylight、および _tzname) も自動的に設定します。When TZ is set, three other environment variables (_timezone, _daylight, and _tzname) are automatically set as well. 場合、 TZ変数が設定されていないlocaltimeコントロール パネルの 日付/時刻で指定されているタイム ゾーン情報を使用します。If the TZ variable is not set, localtime attempts to use the time zone information specified in the Date/Time application in Control Panel. この情報を取得できない場合、既定では、太平洋タイム ゾーンを表す PST8PDT が使用されます。If this information cannot be obtained, PST8PDT, which signifies the Pacific Time Zone, is used by default. これらの変数の説明については、_tzset を参照してください。See _tzset for a description of these variables. TZは Microsoft 拡張機能との ANSI 標準定義の一部ではないlocaltimeします。TZ is a Microsoft extension and not part of the ANSI standard definition of localtime.

注意

対象の環境は、夏時間が有効かどうかを判断しようとします。The target environment should try to determine whether daylight saving time is in effect.

これらの関数では、パラメーターの検証が行われます。These functions validate their parameters. 場合sourceTimeが null ポインターの場合は、 sourceTime値が負の値、」の説明に従って、これらの関数は、無効なパラメーター ハンドラーを呼び出しますパラメーターの検証.If sourceTime is a null pointer, or if the sourceTime value is negative, these functions invoke an invalid parameter handler, as described in Parameter Validation. 関数を返すかどうかは、引き続き実行が許可された、 NULL設定とerrnoEINVALします。If execution is allowed to continue, the functions return NULL and set errno to EINVAL.

必要条件Requirements

ルーチンによって返される値Routine 必須の C ヘッダーRequired C header 必須の C++ ヘッダーRequired C++ header
localtime_localtime32_localtime64localtime, _localtime32, _localtime64 <time.h><time.h> <ctime > または<time.h ><ctime> or <time.h>

互換性の詳細については、「 互換性」を参照してください。For additional compatibility information, see Compatibility.

Example

// crt_localtime.cpp
// compile with: /W3
// This program uses _time64 to get the current time
// and then uses localtime64() to convert this time to a structure
// representing the local time. The program converts the result
// from a 24-hour clock to a 12-hour clock and determines the
// proper extension (AM or PM).

#include <stdio.h>
#include <string.h>
#include <time.h>

int main( void )
{
    struct tm *newtime;
    char am_pm[] = "AM";
    __time64_t long_time;

    _time64( &long_time );             // Get time as 64-bit integer.
                                       // Convert to local time.
    newtime = _localtime64( &long_time ); // C4996
    // Note: _localtime64 deprecated; consider _localetime64_s

    if( newtime->tm_hour > 12 )        // Set up extension.
        strcpy_s( am_pm, sizeof(am_pm), "PM" );
    if( newtime->tm_hour > 12 )        // Convert from 24-hour
        newtime->tm_hour -= 12;        //   to 12-hour clock.
    if( newtime->tm_hour == 0 )        // Set hour to 12 if midnight.
        newtime->tm_hour = 12;

    char buff[30];
    asctime_s( buff, sizeof(buff), newtime );
    printf( "%.19s %s\n", buff, am_pm );
}
Tue Feb 12 10:05:58 AM

関連項目See also

時間管理Time Management
asctime、_wasctimeasctime, _wasctime
ctime、_ctime32、_ctime64、_wctime、_wctime32、_wctime64ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_ftime、_ftime32、_ftime64_ftime, _ftime32, _ftime64
gmtime、_gmtime32、_gmtime64gmtime, _gmtime32, _gmtime64
localtime_s、_localtime32_s、_localtime64_slocaltime_s, _localtime32_s, _localtime64_s
time、_time32、_time64time, _time32, _time64
_tzset_tzset