GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::chrono::zoned_time(3) C++ Standard Libary std::chrono::zoned_time(3)

std::chrono::zoned_time - std::chrono::zoned_time


Defined in header <chrono>
template <


class Duration, (since C++20)
class TimeZonePtr = const std::chrono::time_zone*


> class zoned_time;
using zoned_seconds = std::chrono::zoned_time<std::chrono::seconds>; (since C++20)


The class zoned_time represents a logical pairing of a time zone and a
std::chrono::time_point whose resolution is Duration.


An invariant of zoned_time is that it always refers to a valid time zone and
represents an existing and unambiguous time point in that time zone. Consistent with
this invariant, zoned_time has no move constructor or move assignment operator;
attempts to move a zoned_time will perform a copy.


The program is ill-formed if Duration is not a specialization of
std::chrono::duration.


The template parameter TimeZonePtr allows users to supply their own time zone
pointer types and further customize the behavior of zoned_time via
std::chrono::zoned_traits. Custom time zone types need not support all the
operations supported by std::chrono::time_zone, only those used by the functions
actually called on the zoned_time.


TimeZonePtr must be MoveConstructible. Move-only TimeZonePtrs are allowed but
difficult to use, as the zoned_time will be immovable and it is not possible to
access the stored TimeZonePtr.


Member type Definition
duration std::common_type_t<Duration, std::chrono::seconds>


constructor constructs a zoned_time
(public member function)
operator= assigns value to a zoned_time
(public member function)
get_time_zone obtains a copy of the time zone pointer
(public member function)
operator local_time obtains the stored time point as a local_time
get_local_time (public member function)
operator sys_time obtains the stored time point as a sys_time
get_sys_time (public member function)
get_info obtain information about the time zone at the stored time point
(public member function)


operator== compares two zoned_time values
(C++20) (function template)
operator<< outputs a zoned_time into a stream
(C++20) (function template)


specialization of std::formatter that
std::formatter<std::chrono::zoned_time> formats a zoned_time according to the
(C++20) provided format
(class template specialization)


Deduction guides

// Run this code


#include <chrono>
#include <iomanip>
#include <iostream>
#include <algorithm>
#include <stdexcept>
#include <string_view>


int main()
{
constexpr std::string_view locations[] = {
"Africa/Casablanca", "America/Argentina/Buenos_Aires",
"America/Barbados", "America/Indiana/Petersburg",
"America/Tarasco_Bar", "Antarctica/Casey",
"Antarctica/Vostok", "Asia/Magadan",
"Asia/Manila", "Asia/Shanghai",
"Asia/Tokyo", "Atlantic/Bermuda",
"Australia/Darwin", "Europe/Isle_of_Man",
"Europe/Laputa", "Indian/Christmas",
"Indian/Cocos", "Pacific/Galapagos",
};
constexpr auto width = std::ranges::max_element(locations, {},
[](const auto& s) { return s.length(); })->length();


for (const auto location : locations) {
try {
// may throw if `location` is not in the time zone database
const std::chrono::zoned_time zt{location, std::chrono::system_clock::now()};
std::cout << std::setw(width) << location << " - Zoned Time: " << zt << '\n';
} catch (std::chrono::nonexistent_local_time& ex) {
std::cout << "Error: " << ex.what() << '\n';
}
}
}


Africa/Casablanca - Zoned Time: 2021-09-16 10:26:54.837665555 +01
America/Argentina/Buenos_Aires - Zoned Time: 2021-09-16 06:26:55.090150136 -03
America/Barbados - Zoned Time: 2021-09-16 05:26:55.090419331 AST
America/Indiana/Petersburg - Zoned Time: 2021-09-16 05:26:55.090465623 EDT
Error: America/Tarasco_Bar not found in timezone database
Antarctica/Casey - Zoned Time: 2021-09-16 20:26:55.123070973 +11
Antarctica/Vostok - Zoned Time: 2021-09-16 15:26:55.123151218 +06
Asia/Magadan - Zoned Time: 2021-09-16 20:26:55.123208852 +11
Asia/Manila - Zoned Time: 2021-09-16 17:26:55.123434512 PST
Asia/Shanghai - Zoned Time: 2021-09-16 17:26:55.123520538 CST
Asia/Tokyo - Zoned Time: 2021-09-16 18:26:55.123626199 JST
Atlantic/Bermuda - Zoned Time: 2021-09-16 06:26:55.123713854 ADT
Australia/Darwin - Zoned Time: 2021-09-16 18:56:55.155857464 ACST
Europe/Isle_of_Man - Zoned Time: 2021-09-16 10:26:55.155909304 BST
Error: Europe/Laputa not found in timezone database
Indian/Christmas - Zoned Time: 2021-09-16 16:26:55.215065303 +07
Indian/Cocos - Zoned Time: 2021-09-16 15:56:55.215137548 +0630
Pacific/Galapagos - Zoned Time: 2021-09-16 03:26:55.215201447 -06

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.