Namespaces
Variants

std:: ctime

From cppreference.net
< cpp ‎ | chrono ‎ | c
ヘッダーで定義 <ctime>
char * ctime ( const std:: time_t * time ) ;

エポックからの経過時間をカレンダーの現地時間に変換し、その後、以下の呼び出しと同様にテキスト表現に変換します: std:: asctime ( std:: localtime ( time ) ) 。結果の文字列は以下の形式を持ちます:

Www Mmm dd hh:mm:ss yyyy\n
  • Www - 曜日( Mon Tue Wed Thu Fri Sat Sun のいずれか)。
  • Mmm - 月( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec のいずれか)。
  • dd - 月内の日付。
  • hh - 時間。
  • mm - 分。
  • ss - 秒。
  • yyyy - 年。

この関数はローカライゼーションをサポートしていません。

目次

パラメータ

time - 出力する時間を指定する std::time_t オブジェクトへのポインタ

戻り値

静的でヌル終端された文字列へのポインタで、日付と時刻の文字列表現を保持します。この文字列は std::asctime std::ctime の間で共有される可能性があり、これらの関数のいずれかが呼び出されるたびに上書きされる可能性があります。

注記

この関数は静的データへのポインタを返し、スレッドセーフではありません。さらに、静的 std::tm オブジェクトを変更します。このオブジェクトは std::gmtime および std::localtime と共有されている可能性があります。POSIXはこの関数を廃止予定とし、代わりに std::strftime の使用を推奨しています。

値が25文字を超える文字列を生成する場合(例えば、年が10000年)、 std::time_t の動作は未定義となる可能性があります。

#include <cassert>
#include <cstring>
#include <ctime>
#include <iostream>
int main()
{
    std::time_t result = std::time(nullptr);
    std::cout << std::ctime(&result);
    char buffer[32];
    std::strncpy(buffer, std::ctime(&result), 26);
    assert('\n' == buffer[std::strlen(buffer) - 1]);
    std::cout << buffer;
}

出力例:

Mon Oct 11 17:10:55 2021
Mon Oct 11 17:10:55 2021

関連項目

std::tm オブジェクトをテキスト表現に変換する
(関数)
std::tm オブジェクトをカスタムテキスト表現に変換する
(関数)
(C++11)
指定されたフォーマットに従って日付/時刻値をフォーマットし出力する
(関数テンプレート)