Share via


ctime、_ctime32、_ctime64、_wctime、_wctime32、_wctime64

更新 : 2007 年 11 月

時間値を文字列に変換し、現地のタイム ゾーンの設定に調整します。これらの関数のセキュリティを強化したバージョンについては、「ctime_s、_ctime32_s、_ctime64_s、_wctime_s、_wctime32_s、_wctime64_s」を参照してください。

char *ctime( 
   const time_t *timer 
);
char *_ctime32( 
   const __time32_t *timer )
;
char *_ctime64( 
   const __time64_t *timer )
;
wchar_t *_wctime( 
   const time_t *timer 
);
wchar_t *_wctime32( 
   const __time32_t *timer
);
wchar_t *_wctime64( 
   const __time64_t *timer 
);

パラメータ

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

戻り値

結果の文字列へのポインタを返します。以下の場合、NULL が返されます。

  • time が 1970 年 1 月 1 日の世界協定時刻 (UTC: Coordinated Universal Time) の深夜午前 0 時よりも前の日付を示している場合

  • _ctime32 または _wctime32 を使用していて、time が 2038 年 1 月 19 日の 03 時 14 分 07 秒よりも後の日付を示している場合

  • _ctime64 または _wctime64 を使用していて、time が 3000 年 12 月 31 日の UTC の 23 時 59 分 59 秒よりも後の日付を示している場合

Visual C++ 2005 では、ctime は、_ctime64 に評価されるインライン関数であり、time_t は __time64_t と等価です。コンパイラが time_t を従来の 32 ビット time_t として解釈するようにするには、_USE_32BIT_TIME_T を定義します。この定義を行うことにより、ctime は _ctime32 に評価されます。この方法はお勧めしません。2038 年 1 月 18 日以降にアプリケーションでエラーが発生する可能性があり、64 ビット プラットフォームでは使用できないためです。

解説

ctime 関数は、time_t 値として格納された時間値を文字列に変換します。timer 値を取得するには、通常、time を呼び出します。世界協定時刻 (UTC) の 1970 年 1 月 1 日の深夜 00 時 00 分 00 秒からの経過秒数が返されます。戻り値は、26 文字からなる、次のような書式の文字列です。

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

時刻は 24 時間制です。すべてのフィールドは固定幅です。文字列の終端には、改行文字 ('\n') および NULL 文字 ('\0') が入ります。

変換された文字列は、現地のタイム ゾーンの設定に合わせて調整されます。現地時刻の設定方法については、time、_ftime、および localtime の各関数に関するトピックを参照してください。タイム ゾーンの環境変数とグローバル変数の定義の詳細については、_tzset 関数に関するトピックを参照してください。

ctime を呼び出すと、gmtime 関数および localtime 関数が使用する静的に割り当てられた 1 つのバッファが変更されます。これらのルーチンを呼び出すたびに、前回の呼び出し結果が破棄されます。ctime は、asctime 関数と静的バッファを共有します。したがって、ctime の呼び出しにより、asctime、localtime、または gmtime のいずれかの以前の呼び出し結果が破棄されます。

ワイド文字を扱う場合は、ctime および _ctime64 ではなく、_wctime および _wctime64 を使用します。この場合、ワイド文字列へのポインタを返します。それ以外の場合、_ctime64、_wctime、および _wctime64 の動作は ctime と同じです。

これらの関数では、パラメータの検証が行われます。timer が null ポインタの場合またはタイマ値が負の場合、「パラメータの検証」に説明されているように、これらの関数は無効なパラメータ ハンドラを呼び出します。実行の継続が許可された場合、関数は NULL を返し、errno を EINVAL に設定します。

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

TCHAR.H のルーチン

_UNICODE および _MBCS が未定義の場合

_MBCS が定義されている場合

_UNICODE が定義されている場合

_tctime

ctime

ctime

_wctime

_tctime32

_ctime32

_ctime32

_wctime32

_tctime64

_ctime64

_ctime64

_wctime64

必要条件

ルーチン

必須ヘッダー

ctime

<time.h>

_ctime32

<time.h>

_ctime64

<time.h>

_wctime

<time.h> または <wchar.h>

_wctime32

<time.h> または <wchar.h>

_wctime64

<time.h> または <wchar.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

// crt_ctime64.c
// compile with: /W3
/* This program gets the current
 * time in _time64_t form, then uses ctime to
 * display the time in string form.
 */

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

int main( void )
{
   __time64_t ltime;

   _time64( &ltime );
   printf( "The time is %s\n", _ctime64( &ltime ) ); // C4996
   // Note: _ctime64 is deprecated; consider using _ctime64_s
}

The time is Wed Feb 13 16:04:43 2002

.NET Framework の相当するアイテム

参照

参照

時間管理

asctime、_wasctime

ctime_s、_ctime32_s、_ctime64_s、_wctime_s、_wctime32_s、_wctime64_s

_ftime、_ftime32、_ftime64

gmtime、_gmtime32、_gmtime64

localtime、_localtime32、_localtime64

time、_time32、_time64