Namespaces
Variants

std:: tm

From cppreference.net
< cpp ‎ | chrono ‎ | c
ヘッダーで定義 <ctime>
struct tm ;

カレンダーの日付と時刻を構成要素に分解して保持する構造体。

目次

メンバーオブジェクト

int tm_sec
分後の秒数 – [ 0 , 61 ] (C++11まで) [ 0 , 60 ] (C++11以降) [注釈 1]
(公開メンバオブジェクト)
int tm_min
時後の分 – [ 0 , 59 ]
(公開メンバオブジェクト)
int tm_hour
深夜からの時間 – [ 0 , 23 ]
(公開メンバオブジェクト)
int tm_mday
月の日 – [ 1 , 31 ]
(公開メンバオブジェクト)
int tm_mon
1月からの月数 – [ 0 , 11 ]
(公開メンバオブジェクト)
int tm_year
1900年からの年数
(公開メンバオブジェクト)
int tm_wday
日曜日からの日数 – [ 0 , 6 ]
(公開メンバオブジェクト)
int tm_yday
1月1日からの日数 – [ 0 , 365 ]
(公開メンバオブジェクト)
int tm_isdst
夏時間フラグ。DSTが有効な場合は正の値、無効な場合は0、情報が利用できない場合は負の値。
(公開メンバオブジェクト)
  1. 範囲は正の閏秒を許容します。同じ分内での2つの閏秒は許可されていません(範囲 [ 0 , 61 ] はC89で導入された欠陥であり、C99で修正されました)。

注記

BSD、GNUおよびmusl Cライブラリは、以下の2つの追加メンバをサポートしており、これらは POSIX.1-2024 で標準化されています。

long tm_gmtoff
UTCからの東方向の秒数
(公開メンバーオブジェクト)
const char* tm_zone
タイムゾーン略称
(公開メンバーオブジェクト)

#include <ctime>
#include <iostream>
int main()
{
    std::tm tm{};
    tm.tm_year = 2022 - 1900;
    tm.tm_mday = 1;
    std::mktime(&tm);
    std::cout << std::asctime(&tm); // 末尾の暗黙的な '\n' に注意
}

出力例:

Sat Jan  1 00:00:00 2022

関連項目

エポックからの経過時間を現地時間で表した暦時刻に変換する
(関数)
エポックからの経過時間を協定世界時で表した暦時刻に変換する
(関数)