Tôi nghĩ rằng nó sẽ là thú vị để khám phá những gì IANA timezones hiện đang sử dụng chữ viết tắt "GMT", cả bây giờ và 6 tháng kể từ bây giờ (để đón những hiện đúng thời hạn tiết kiệm ánh sáng ban ngày).
Sử dụng free, open source C++11/14 library này, tôi đã viết chương trình này:
#include "tz.h"
#include <string>
#include <iostream>
#include <vector>
template <class Duration>
std::vector<date::zoned_time<std::common_type_t<Duration, std::chrono::seconds>>>
find_by_abbrev(date::sys_time<Duration> tp, const std::string& abbrev)
{
using namespace std::chrono;
using namespace date;
std::vector<zoned_time<std::common_type_t<Duration, seconds>>> results;
auto& db = get_tzdb();
for (auto& z : db.zones)
{
if (z.get_info(tp).abbrev == abbrev)
results.push_back(make_zoned(&z, tp));
}
return results;
}
int
main()
{
using namespace std::chrono;
using namespace date;
auto now = system_clock::now();
auto v = find_by_abbrev(now, "GMT");
for (auto const& x : v)
std::cout << format("%F %H:%M:%S %Z %z", x) << " "
<< x.get_time_zone()->name() << '\n';
std::cout << '\n';
v = find_by_abbrev(now + months{6}, "GMT");
for (auto const& x : v)
std::cout << format("%F %H:%M:%S %Z %z", x) << " "
<< x.get_time_zone()->name() << '\n';
}
này tìm kiếm hành tinh cho tất cả các múi giờ hiện đang sử dụng "GMT", cả bây giờ, và 6 tháng kể từ bây giờ, và in chúng ra:
2016-06-18 01:00:25.632773 GMT +0000 Africa/Abidjan
2016-06-18 01:00:25.632773 GMT +0000 Africa/Accra
2016-06-18 01:00:25.632773 GMT +0000 Africa/Bissau
2016-06-18 01:00:25.632773 GMT +0000 Africa/Monrovia
2016-06-18 01:00:25.632773 GMT +0000 America/Danmarkshavn
2016-06-18 01:00:25.632773 GMT +0000 Atlantic/Reykjavik
2016-06-18 01:00:25.632773 GMT +0000 Etc/GMT
2016-12-17 15:55:01.632773 GMT +0000 Africa/Abidjan
2016-12-17 15:55:01.632773 GMT +0000 Africa/Accra
2016-12-17 15:55:01.632773 GMT +0000 Africa/Bissau
2016-12-17 15:55:01.632773 GMT +0000 Africa/Monrovia
2016-12-17 15:55:01.632773 GMT +0000 America/Danmarkshavn
2016-12-17 15:55:01.632773 GMT +0000 Atlantic/Reykjavik
2016-12-17 15:55:01.632773 GMT +0000 Etc/GMT
2016-12-17 15:55:01.632773 GMT +0000 Europe/Dublin
2016-12-17 15:55:01.632773 GMT +0000 Europe/London
Tôi đã hài lòng khi thấy rằng trong mọi trường hợp, chênh lệch UTC là +0000
. Bạn không bao giờ biết với các chính trị gia và múi giờ. Một số cơ quan lập pháp có thể dễ dàng tuyên bố "Green Mountain Time" (và chỉ có thể ngày mai).
Nguồn
2016-06-18 01:15:17
Tôi tin rằng GMT và UTC là như nhau. Sự khác biệt là tên của tổ chức xác định chúng. Người Anh (GMT = Greenwich Meridian Time) đã ra mắt phiên bản quốc tế (UTC). Xem http://en.wikipedia.org/wiki/UTC –
Vì UTC là tiếng Pháp và GMT là tiếng Anh? – arx
Người ta thường sử dụng 'UTC + 01': [Danh sách các từ viết tắt múi giờ] (http://en.wikipedia.org/wiki/List_of_time_zone_abbreviations), [Danh sách múi giờ theo độ lệch UTC] (http: // vi .wikipedia.org/wiki/List_of_time_zones_by_UTC_offset # toc) –