名前空間
変種
操作

std::localtime

提供: cppreference.com
< cpp‎ | chrono‎ | c
 
 
 
日付と時間のユーティリティ
(C++11)
(C++11)
時計
(C++20)
                                                  
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
カレンダー
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
タイムゾーン
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
C スタイルの日付と時間
 
 
ヘッダ <ctime> で定義
std::tm* localtime( const std::time_t *time );

std::time_t の値として指定されたエポックからの経過時間を現地時間で表されるカレンダー時刻に変換します。

目次

[編集] 引数

time - 変換する time_t オブジェクトを指すポインタ

[編集] 戻り値

成功した場合は静的な内部の std::tm オブジェクトを指すポインタ、そうでなければヌルポインタ。 この構造体は std::gmtimestd::localtime および std::ctime の間で共有されているかもしれず、呼び出しのたびに上書きされるかもしれません。

[編集] ノート

この関数はスレッドセーフでないかもしれません。

POSIX は引数が大きすぎるためにこの関数が失敗した場合は errnoEOVERFLOW に設定することを要求しています。

POSIX はこの関数が環境変数 TZ を読み込む tzset を呼んだかのようにタイムゾーン情報を決定することを規定しています

[編集]

#include <iostream>
#include <iomanip>
#include <ctime>
#include <stdlib.h> // defines putenv in POSIX
 
int main()
{
    std::time_t t = std::time(nullptr);
    std::cout << "UTC:       " << std::put_time(std::gmtime(&t), "%c %Z") << '\n';
    std::cout << "local:     " << std::put_time(std::localtime(&t), "%c %Z") << '\n';
    // POSIX-specific:
    std::string tz = "TZ=Asia/Singapore";
    putenv(tz.data());
    std::cout << "Singapore: " << std::put_time(std::localtime(&t), "%c %Z") << '\n';
}

出力:

UTC:       Fri Sep 15 14:16:29 2017 GMT
local:     Fri Sep 15 14:16:29 2017 UTC
Singapore: Fri Sep 15 22:16:29 2017 SGT

[編集] 関連項目

エポックからの経過時間を協定世界時で表されるカレンダー時刻に変換します
(関数) [edit]