ctime_s、_ctime32_s、_ctime64_s、_wctime_s、_wctime32_s、_wctime64_sctime_s, _ctime32_s, _ctime64_s, _wctime_s, _wctime32_s, _wctime64_s

時刻値を文字列に変換し、ローカルの時間帯設定に合わせて調整します。Convert a time value to a string and adjust for local time zone settings. これらは、「Security Features in the CRT」 (CRT のセキュリティ機能) で説明されているように、セキュリティが強化されたバージョンの ctime、_ctime64、_wctime、_wctime64 です。These are versions of ctime, _ctime64, _wctime, _wctime64 with security enhancements as described in Security Features in the CRT.

構文Syntax

errno_t ctime_s(
   char* buffer,
   size_t numberOfElements,
   const time_t *sourceTime
);
errno_t _ctime32_s(
   char* buffer,
   size_t numberOfElements,
   const __time32_t *sourceTime
);
errno_t _ctime64_s(
   char* buffer,
   size_t numberOfElements,
   const __time64_t *sourceTime )
;
errno_t _wctime_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const time_t *sourceTime
);
errno_t _wctime32_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const __time32_t *sourceTime
);
errno_t _wctime64_s(
   wchar_t* buffer,
   size_t numberOfElements,
   const __time64_t *sourceTime
);
template <size_t size>
errno_t _ctime32_s(
   char (&buffer)[size],
   const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _ctime64_s(
   char (&buffer)[size],
   const __time64_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime32_s(
   wchar_t (&buffer)[size],
   const __time32_t *sourceTime
); // C++ only
template <size_t size>
errno_t _wctime64_s(
   wchar_t (&buffer)[size],
   const __time64_t *sourceTime
); // C++ only

パラメーターParameters

バッファーbuffer
26 文字を収納できる大きさが必要です。Must be large enough to hold 26 characters. 文字の文字列の結果へのポインターまたはNULL場合。A pointer to the character string result, or NULL if:

  • sourceTime UTC の午前 0 時、1970 年 1 月 1 日より前に、の日付を表します。sourceTime represents a date before midnight, January 1, 1970, UTC.

  • 使用する場合 _ctime32_sまたは _wctime32_ssourceTime後、2038 年 1 月 18 日 23時 59分: 59 までの日付を表します。If you use _ctime32_s or _wctime32_s and sourceTime represents a date after 23:59:59 January 18, 2038, UTC.

  • 使用する場合 _ctime64_sまたは _wctime64_ssourceTime UTC 3000 年 12 月 31 日 23時 59分: 59 秒より後の日付を表します。If you use _ctime64_s or _wctime64_s and sourceTime represents a date after 23:59:59, December 31, 3000, UTC.

  • 使用する場合 _ctime_sまたは _wctime_s、これらの関数は前の関数のラッパーです。If you use _ctime_s or _wctime_s, these functions are wrappers to the previous functions. 「解説」を参照してください。See the Remarks section.

numberOfElementsnumberOfElements
バッファーのサイズ。The size of the buffer.

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

戻り値Return Value

正常終了した場合は 0。Zero if successful. 無効なパラメーターに起因して障害が発生した場合は、「パラメーターの検証」で説明されているとおり、無効なパラメーター ハンドラーが呼び出されます。If there is a failure due to an invalid parameter, the invalid parameter handler is invoked, as described in Parameter Validation. 実行の継続が許可された場合、エラー コードが返されます。If execution is allowed to continue, an error code is returned. エラー コードは ERRNO.H で定義されます。これらのエラーの一覧については、errno を参照してください。Error codes are defined in ERRNO.H; for a listing of these errors, see errno. 各エラー条件に対してスローされる実際のエラー コードを、次の表に示します。The actual error codes thrown for each error condition are shown in the following table.

エラー条件Error Conditions

バッファーbuffer numberOfElementsnumberOfElements sourceTimesourceTime ReturnReturn バッファーValue in buffer
NULLNULL 任意any 任意any EINVALEINVAL 変更されないNot modified
いないNULL (有効なメモリを指す)Not NULL (points to valid memory) 00 任意any EINVALEINVAL 変更されないNot modified
いないNULLNot NULL 0< サイズ < 260< size < 26 任意any EINVALEINVAL 空の文字列Empty string
いないNULLNot NULL >= 26>= 26 NULLNULL EINVALEINVAL 空の文字列Empty string
いないNULLNot NULL >= 26>= 26 < 0< 0 EINVALEINVAL 空の文字列Empty string

RemarksRemarks

Ctime_s関数として格納されている時刻値の変換、 time_t文字の文字列に構造体。The ctime_s function converts a time value stored as a time_t structure into a character string. SourceTime値は、通常への呼び出しから取得時間、午前 0 時から経過した秒数を返します (00: 00:00)、世界協定時刻 (UTC) 1970 年 1 月 1 日です。The sourceTime value is usually obtained from a call to time, which returns the number of seconds elapsed since midnight (00:00:00), January 1, 1970, coordinated universal time (UTC). 戻り値には厳密に 26 文字が含まれ、次の形式になります。The return value string contains exactly 26 characters and has the form:

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

24 時間制が使用されます。A 24-hour clock is used. すべてのフィールドには一定の幅があります。All fields have a constant width. 文字列の最後の 2 つの位置には、改行文字 ('\n') と null 文字 ('\0') が入ります。The new line character ('\n') and the null character ('\0') occupy the last two positions of the string.

変換された文字列も、ローカル タイム ゾーンの設定に従って調整されます。The converted character string is also adjusted according to the local time zone settings. 参照してください、時間_ftime、およびlocaltime32_s関数をローカル時刻の構成については、 _tzsetについては、タイム ゾーン環境とグローバル変数を定義する関数。See the time, _ftime, and localtime32_s functions for information about configuring the local time and the _tzset function for information about defining the time zone environment and global variables.

_wctime32_s_wctime64_sのワイド文字バージョン _ctime32_s_ctime64_s; ワイド文字の文字列にポインターを返します。_wctime32_s and _wctime64_s are the wide-character version of _ctime32_s and _ctime64_s; returning a pointer to wide-character string. それ以外の場合、 _ctime64_s_wctime32_s、および _wctime64_sと同様に動作 _ctime32_sします。Otherwise, _ctime64_s, _wctime32_s, and _wctime64_s behave identically to _ctime32_s.

ctime_sに評価されるインライン関数は、 _ctime64_stime_tと等価 _ _time64_tします。ctime_s is an inline function that evaluates to _ctime64_s 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. これによりctime_sを評価する _ctime32_sします。Doing this will cause ctime_s to evaluate to _ctime32_s. ただし、この方法は推奨されません。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.

C++ では、テンプレートのオーバーロードによってこれらの関数を簡単に使用できます。オーバーロードでは、バッファー長を自動的に推論できるため、サイズ引数を指定する必要がなくなります。In C++, using these functions is simplified by template overloads; the overloads can infer buffer length automatically, eliminating the need to specify a size argument. 詳細については、「 Secure Template Overloads」を参照してください。For more information, see Secure Template Overloads.

汎用テキスト ルーチンのマップGeneric-Text Routine Mappings

TCHAR.H のルーチンTCHAR.H routine _UNICODE および _MBCS が未定義の場合_UNICODE & _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_tctime_s_tctime_s ctime_sctime_s ctime_sctime_s _wctime_s_wctime_s
_tctime32_s_tctime32_s _ctime32_s_ctime32_s _ctime32_s_ctime32_s _wctime32_s_wctime32_s
_tctime64_s_tctime64_s _ctime64_s_ctime64_s _ctime64_s_ctime64_s _wctime64_s_wctime64_s

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header
ctime_s_ctime32_s_ctime64_sctime_s, _ctime32_s, _ctime64_s <time.h><time.h>
_wctime_s_wctime32_s_wctime64_s_wctime_s, _wctime32_s, _wctime64_s <time.h> または <wchar.h><time.h> or <wchar.h>

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

ライブラリLibraries

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

Example

// crt_wctime_s.c
// This program gets the current
// time in time_t form and then uses _wctime_s to
// display the time in string form.

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

#define SIZE 26

int main( void )
{
   time_t ltime;
   wchar_t buf[SIZE];
   errno_t err;

   time( &ltime );

   err = _wctime_s( buf, SIZE, &ltime );
   if (err != 0)
   {
      printf("Invalid Arguments for _wctime_s. Error Code: %d\n", err);
   }
   wprintf_s( L"The time is %s\n", buf );
}
The time is Fri Apr 25 13:03:39 2003

関連項目See also

時間管理Time Management
asctime_s、_wasctime_sasctime_s, _wasctime_s
ctime、_ctime32、_ctime64、_wctime、_wctime32、_wctime64ctime, _ctime32, _ctime64, _wctime, _wctime32, _wctime64
_ftime、_ftime32、_ftime64_ftime, _ftime32, _ftime64
gmtime_s、_gmtime32_s、_gmtime64_sgmtime_s, _gmtime32_s, _gmtime64_s
localtime_s、_localtime32_s、_localtime64_slocaltime_s, _localtime32_s, _localtime64_s
time、_time32、_time64time, _time32, _time64