作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想要 C++ 中的灵魂来获得 GMT 时间和任何时区之间的小时差异。例如这是用 Java 我想用 C++ 制作
// New York
Calendar c = new GregorianCalendar(TimeZone.getTimeZone("America/New_York"));
// Alaska
c = new GregorianCalendar(TimeZone.getTimeZone("America/Anchorage"));
// Difference between New York and Alaska
请告诉我如何在 C++ 中获取这个时区
最佳答案
您可以使用 cctz用于计算两个不同时区在某个特定时间的 UTC 偏移量差异的库。
#include <chrono>
#include "cctz.h"
using namespace std::chrono;
cctz::TimeZone nyc;
cctz::LoadTimeZone("America/New_York", &nyc);
cctz::TimeZone anc;
cctz::LoadTimeZone("America/Anchorage", &anc);
const auto now = system_clock::now();
const auto nyc_off = cctz::BreakTime(now, nyc).offset;
const auto anc_off = cctz::BreakTime(now, anc).offset;
const auto off_diff = nyc_off - anc_off;
现在,事实是您真的不想那样做。真的。健康的现代代码永远不应该(我说过永远不会,因为我的意思是从不)关心 UTC 偏移量。使用 UTC 偏移量进行计算是时区库的工作,如果您的时区库不为您处理,那么您使用了错误的时区库。如果您认为自己关心 UTC 偏移量,那么我鼓励您查看以下内容:
[免责声明:我是 cctz 的作者。]
关于c++ - 如何在 C++ 中获得 GMT 时间和任何时区之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11521674/
我是一名优秀的程序员,十分优秀!