asctime, _wasctime

tm 時間構造体を文字列に変換します。 これらの関数のセキュリティを強化したバージョンを使用できます。「asctime_s_wasctime_s」を参照してください。

構文

char *asctime(
   const struct tm *timeptr
);
wchar_t *_wasctime(
   const struct tm *timeptr
);

パラメーター

timeptr
時刻/日付の構造体。

戻り値

asctime は文字列結果へのポインターを返し、_wasctime はワイド文字結果へのポインターを返します。 エラーの戻り値はありません。

解説

これらの関数のセキュリティを強化したバージョンを使用できます。「asctime_s_wasctime_s」を参照してください。

asctime 関数は、構造体として格納されている時間を文字列に変換します。 timeptr値は通常、gmtimeまたはlocaltimeの呼び出しから取得されます。この両方は、TIME.H で定義されたtm構造体へのポインターを返します。

timeptr のメンバー Value
tm_hour 時 (0 から 23)
tm_isdst 夏時間が有効な場合は正。夏時間が有効でない場合は 0。夏時間の状態が不明な場合は負の値です。 C ランタイム ライブラリでは、アメリカ合衆国の規則を前提に夏時間 (DST) を計算します。
tm_mday 月の日 (1 から 31)
tm_min 分 (0 - 59)
tm_mon 月 (0 - 11、1 月 = 0)
tm_sec 秒 (0 - 59)
tm_wday 曜日 (0 - 6、日曜日 = 0)
tm_yday 年内の通算日 (0 から 365、1 月 1 日 = 0)
tm_year 年 (実際の西暦から 1900 を引いた数)

ローカル時刻の構成については、 time_ftime、および localtime 関数を参照してください。 タイム ゾーン環境とグローバル変数の定義については、 _tzset 関数を参照してください。

asctime によって生成される文字列には、26 文字が含まれ、Wed Jan 2 02:03:55 1980\n\0 の形式となります。 24 時間制が使用されます。 すべてのフィールドには一定の幅があります。 文字列の最後の 2 つの位置には、改行文字と null 文字が入ります。 asctime は、静的に割り当てられた単一のバッファーを使って戻り値の文字列を保持します。 この関数を呼び出すたびに、前の呼び出しの結果は破棄されます。

_wasctimeasctimeのワイド文字バージョンであり、それ以外の場合は asctimeと同じように動作します。

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

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

汎用テキスト ルーチン マッピング

TCHAR.H ルーチン _UNICODE_MBCS が定義されていない _MBCS が定義されている _UNICODE が定義されている
_tasctime asctime asctime _wasctime

要件

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

このプログラムは、システム時刻を長整数 aclockに配置し、それを構造体 newtimeに変換してから、 asctime 関数を使用して出力用の文字列形式に変換します。

// crt_asctime.c
// compile with: /W3

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

int main( void )
{
    struct tm   *newTime;
    time_t      szClock;

    // Get time in seconds
    time( &szClock );

    // Convert time to struct tm form
    newTime = localtime( &szClock );

    // Print local time as a string.
    printf_s( "Current date and time: %s", asctime( newTime ) ); // C4996
    // Note: asctime is deprecated; consider using asctime_s instead
}
Current date and time: Sun Feb  3 11:38:58 2002

関連項目

時間管理
ctime_ctime32_ctime64_wctime_wctime32_wctime64
_ftime_ftime32_ftime64
gmtime_gmtime32_gmtime64
localtime_localtime32_localtime64
time_time32_time64
_tzset
asctime_s, _wasctime_s