ctime_s
, _ctime32_s
, _ctime64_s
, _wctime_s
, _wctime32_s
, _wctime64_s
時刻値を文字列に変換し、ローカルの時間帯設定に合わせて調整します。 これらの関数は、CRT のctime
セキュリティ機能に関する説明に従ってセキュリティが強化されたバージョンの ,_wctime64
_ctime64
_wctime
, です。
構文
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_s
とsourceTime
が 2038 年 1 月 18 日の 23:59:59 時 (協定世界時) よりも後の日付を示している場合。_ctime64_s
または_wctime64_s
とsourceTime
が 3000 年 12 月 31 日の 23:59:59 時 (協定世界時) よりも後の日付を示している場合。_ctime_s
または_wctime_s
を使用する場合、これらの関数は前の関数のラッパーになります。 「解説」を参照してください。
numberOfElements
バッファーのサイズ。
sourceTime
格納されている時刻へのポインター。
戻り値
正常終了した場合は 0。 無効なパラメーターが原因でエラーが発生した場合は、「パラメーターの検証」で説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、エラー コードが返されます。 エラー コードは ERRNO で定義されています。H;これらのエラーの一覧については、次を参照してください errno
。 各エラー条件に対してスローされる実際のエラー コードを、次の表に示します。
エラー条件
buffer |
numberOfElements |
sourceTime |
Return | buffer の値 |
---|---|---|---|---|
NULL |
any | any | EINVAL |
Not modified |
NULL ではありません (有効なメモリを指します) |
0 | any | EINVAL |
Not modified |
NULL ではない |
0< サイズ < 26 | any | EINVAL |
空の文字列 |
NULL ではない |
>= 26 | NULL | EINVAL |
空の文字列 |
NULL ではない |
>= 26 | < 0 | EINVAL |
空の文字列 |
解説
この関数は ctime_s
、構造体として格納された時刻値を time_t
文字列に変換します。 この値は sourceTime
通常、1970 年 1 月 1 日の午前 0 時 (00:00:00)、協定世界時 (UTC) から経過した秒数を返す呼び出し time
から取得されます。 戻り値には厳密に 26 文字が含まれ、次の形式になります。
Wed Jan 2 02:03:55 1980\n\0
24 時間制が使用されます。 すべてのフィールドには一定の幅があります。 文字列の最後の 2 つの位置には、改行文字 ('\n') と null 文字 ('\0') が入ります。
変換された文字列も、ローカル タイム ゾーンの設定に従って調整されます。 ローカル時刻の構成の詳細については、,,およびlocaltime
関数をtime
_ftime
参照してください。 タイム ゾーン環境とグローバル変数の定義の詳細については、関数を _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( <ime );
err = _wctime_s( buf, SIZE, <ime );
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
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示