次の方法で共有


ctime_s_ctime32_s_ctime64_s_wctime_s_wctime32_s_wctime64_s

時刻値を文字列に変換し、ローカルの時間帯設定に合わせて調整します。 これらの関数は、「CRT のSecurity 機能」で説明されているように、セキュリティが強化されたctime_ctime64_wctime_wctime64のバージョンです。

構文

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

パラメーター

buffer
26 文字を収納できる大きさが必要です。 文字列の結果へのポインター。次の場合は NULL

  • sourceTime が 1970 年 1 月 1 日の深夜 0 時 (協定世界時) よりも前の日付を示している場合。

  • _ctime32_s または _wctime32_ssourceTime が 2038 年 1 月 18 日の 23:59:59 時 (協定世界時) よりも後の日付を示している場合。

  • _ctime64_s または _wctime64_ssourceTime が 3000 年 12 月 31 日の 23:59:59 時 (協定世界時) よりも後の日付を示している場合。

  • _ctime_s または _wctime_s を使用する場合、これらの関数は前の関数のラッパーになります。 「解説」を参照してください。

numberOfElements
バッファーのサイズ。

sourceTime
格納されている時刻へのポインター。

戻り値

正常終了した場合は 0。 無効なパラメーターが原因でエラーが発生した場合は、「 パラメーターの検証で説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、エラー コードが返されます。 エラー コードは ERRNO で定義されています。H;これらのエラーの一覧については、 errnoを参照してください。 各エラー条件に対してスローされる実際のエラー コードを、次の表に示します。

エラー条件

buffer numberOfElements sourceTime Return buffer の値
NULL 任意 任意 EINVAL Not modified
NULL ではありません (有効なメモリを指します) 0 任意 EINVAL Not modified
NULL ではない 0< サイズ < 26 任意 EINVAL 空の文字列
NULL ではない >= 26 NULL EINVAL 空の文字列
NULL ではない >= 26 < 0 EINVAL 空の文字列

解説

ctime_s関数は、time_t構造体として格納された時刻値を文字列に変換します。 sourceTime値は通常、timeの呼び出しから取得されます。これは、協定世界時 (UTC) である 1970 年 1 月 1 日の午前 0 時 (00:00:00) から経過した秒数を返します。 戻り値には厳密に 26 文字が含まれ、次の形式になります。

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

24 時間制が使用されます。 すべてのフィールドには一定の幅があります。 文字列の最後の 2 つの位置には、改行文字 ('\n') と null 文字 ('\0') が入ります。

変換された文字列も、ローカル タイム ゾーンの設定に従って調整されます。 ローカル時刻の構成については、 time_ftime、および localtime 関数を参照してください。 タイム ゾーン環境とグローバル変数の定義の詳細については、 _tzset 関数を参照してください。

_wctime32_s_wctime64_s_ctime32_s_ctime64_s のワイド文字バージョンです。ワイド文字列のポインターを返します。 それ以外では、_ctime64_s_wctime32_s_wctime64_s の動作は _ctime32_s と同じです。

ctime_s_ctime64_s と評価されるインライン関数であり、time_t__time64_t と等価です。 コンパイラが time_t を古い 32 ビットの time_tとして解釈するよう強制する必要がある場合には、 _USE_32BIT_TIME_Tを定義します。 このマクロにより、 ctime_s_ctime32_sに評価されます。 アプリケーションは 2038 年 1 月 18 日以降に失敗する可能性があり、64 ビット プラットフォームでは許可されないため、お勧めしません。

C++ では、テンプレートのオーバーロードによってこれらの関数を簡単に使用できます。オーバーロードでは、バッファー長を自動的に推論できるため、サイズ引数を指定する必要がなくなります。 詳細については、「セキュリティ保護されたテンプレート オーバーロード」を参照してください。

これらの関数のデバッグ ライブラリ バージョンでは、最初にバッファーを 0xFE で埋めます。 この動作を無効にするには、_CrtSetDebugFillThreshold を使用します。

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。

汎用テキスト ルーチンのマップ

TCHAR.H のルーチン _UNICODE_MBCS が定義されていない _MBCS が定義されている _UNICODE が定義されている
_tctime_s ctime_s ctime_s _wctime_s
_tctime32_s _ctime32_s _ctime32_s _wctime32_s
_tctime64_s _ctime64_s _ctime64_s _wctime64_s

要件

ルーチンによって返される値 必須ヘッダー
ctime_s_ctime32_s_ctime64_s <time.h>
_wctime_s_wctime32_s_wctime64_s <time.h> または <wchar.h>

互換性の詳細については、「 Compatibility」を参照してください。

ライブラリ

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

// 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

関連項目

時間管理
asctime_s, _wasctime_s
ctime_ctime32_ctime64_wctime_wctime32_wctime64
_ftime_ftime32_ftime64
gmtime_s_gmtime32_s_gmtime64_s
localtime_s_localtime32_s_localtime64_s
time_time32_time64