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. 文字列の結果へのポインター、または次の場合はNULLA pointer to the character string result, or NULL if:

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

  • _Ctime32_sまたは _wctime32_sを使用する場合、 Sourcetimeは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_sを使用する場合、 Sourcetimeは23:59:59 年12月 3000 31 日の日付 (UTC) を表します。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
Not NULL (有効なメモリを指す)Not NULL (points to valid memory) 00 任意any EINVALEINVAL 変更されないNot modified
NULL以外Not NULL 0< size < 260< size < 26 任意any EINVALEINVAL 空の文字列Empty string
NULL以外Not NULL >= 26>= 26 NULLNULL EINVALEINVAL 空の文字列Empty string
NULL以外Not 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)、1970 1 月1日午前0時 (UTC) の時間が経過した秒数が返されます。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. タイムゾーン環境とグローバル変数の定義の詳細については、 time_ftime、およびlocaltime32_s関数に関する情報を参照してください。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_sに評価されるインライン関数で、 time_t__time64_tに相当します。ctime_s is an inline function that evaluates to _ctime64_s and time_t is equivalent to __time64_t. 以前の32ビットのtime_tとして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. 詳細については、「セキュリティ保護されたテンプレート オーバーロード」を参照してください。For more information, see Secure Template Overloads.

これらの関数のデバッグライブラリバージョンは、最初にバッファーを0xFE で埋めます。The debug library versions of these functions first fill the buffer with 0xFE. この動作を無効にするには、_CrtSetDebugFillThreshold を使用します。To disable this behavior, use _CrtSetDebugFillThreshold.

汎用テキスト ルーチンのマップ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