Skip to content

Latest commit

 

History

History
92 lines (71 loc) · 2.7 KB

locate_zone.md

File metadata and controls

92 lines (71 loc) · 2.7 KB

locate_zone

  • chrono[meta header]
  • std::chrono[meta namespace]
  • function[meta id-type]
  • cpp20[meta cpp]
namespace std::chrono {
  const time_zone* locate_zone(std::string_view tz_name);
}
  • time_zone[link time_zone.md]

概要

指定した名前のタイムゾーンを取得する。

この関数には、タイムゾーンデータベースに登録されているタイムゾーンを、「地域/地名」の形式で指定して取得する。

戻り値

return get_tzdb().locate_zone(tz_name);
  • get_tzdb()[link get_tzdb.md]
  • locate_zone[link tzdb/locate_zone.md]

例外

該当する名前のタイムゾーンが見つからない場合、std::runtime_error例外を送出する

備考

  • この関数は例外を送出する状況以外では、常に有効なtime_zoneオブジェクトへのポインタを返す

#include <iostream>
#include <chrono>

namespace chrono = std::chrono;

int main()
{
  // 日本のタイムゾーン (UTC + 9時間)
  const chrono::time_zone* tz = chrono::locate_zone("Asia/Tokyo");
  std::cout << tz->name() << std::endl;

  // アメリカのタイムゾーン。
  // 地名内のスペースは、アンダースコアに変換されている
  std::cout << chrono::locate_zone("America/New_York")->name() << std::endl;

  // 標準時のタイムゾーン。
  // 正式なタイムゾーン名は "Etc/UTC" と "Etc/GMT" だが、
  // より短い名前が (リンクとして) 定義されている
  std::cout << chrono::locate_zone("UTC")->name() << std::endl;
  std::cout << chrono::locate_zone("GMT")->name() << std::endl;

  // キプロス共和国の首都ニコシアはアジアに属するが、
  // 多くのユーザーはヨーロッパで見つかることを期待している。
  // ニコシアは、ヨーロッパとアジアどちらでも見つかるようリンクされており、
  // 現在の正式な地域だけでなく (Asia/Nicosia)、リンクされた地域も指定できる
  const chrono::time_zone* linked_tz = chrono::locate_zone("Europe/Nicosia");
  std::cout << linked_tz->name() << std::endl;
}
  • chrono::locate_zone[color ff0000]
  • chrono::time_zone[link time_zone.md]
  • name()[link time_zone/name.md]

出力

Asia/Tokyo
America/New_York
Etc/UTC
Etc/GMT
Asia/Nicosia

バージョン

言語

  • C++20

処理系

参照