Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得GMT时间和C+中任何时区之间的差异+; 我想用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++ - Fatal编程技术网

如何获得GMT时间和C+中任何时区之间的差异+; 我想用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

如何获得GMT时间和C+中任何时区之间的差异+; 我想用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++,C++,请告诉我如何在C++中获取此时区。您可以使用该库计算特定时间两个不同时区之间的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",

请告诉我如何在C++中获取此时区。

您可以使用该库计算特定时间两个不同时区之间的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;
#包括
#包括“cctz.h”
使用名称空间std::chrono;
纽约时区;
cctz::LoadTimeZone(“美国/纽约”和纽约);
时区anc;
cctz::装货时区(“美国/安克雷奇”和anc);
const auto now=系统时钟::now();
const auto nyc_off=cctz::BreakTime(现在,纽约市);
const auto anc_off=cctz::BreakTime(现在,anc).offset;
const auto off_diff=nyc_off-anc_off;

现在,事实是你真的不想这么做。真正地健康、现代的代码永远不应该(我说过永远,因为我的意思是永远不)关心UTC偏移量。使用UTC偏移量进行计算是时区库的工作,如果您的时区库不能为您处理该问题,则您使用的时区库是错误的。如果您认为您关心UTC补偿,那么我鼓励您研究以下内容:

  • 阅读CCTZ github页面上的基本概念部分
  • 从CppCon 2015观看
  • 读取cctz.h头文件(它很简短)
[免责声明:我是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;
#包括
#包括“cctz.h”
使用名称空间std::chrono;
纽约时区;
cctz::LoadTimeZone(“美国/纽约”和纽约);
时区anc;
cctz::装货时区(“美国/安克雷奇”和anc);
const auto now=系统时钟::now();
const auto nyc_off=cctz::BreakTime(现在,纽约市);
const auto anc_off=cctz::BreakTime(现在,anc).offset;
const auto off_diff=nyc_off-anc_off;

现在,事实是你真的不想这么做。真正地健康、现代的代码永远不应该(我说过永远,因为我的意思是永远不)关心UTC偏移量。使用UTC偏移量进行计算是时区库的工作,如果您的时区库不能为您处理该问题,则您使用的时区库是错误的。如果您认为您关心UTC补偿,那么我鼓励您研究以下内容:

  • 阅读CCTZ github页面上的基本概念部分
  • 从CppCon 2015观看
  • 读取cctz.h头文件(它很简短)
[免责声明:我是cctz的作者。]

我已经盯着看了几天了,正在考虑在以下内容中添加一些语法糖:

这对我来说目前的产出是:

04:00:00.000000

我也不确定该语法是否比当前语法好到足以保证其存在:

int
main()
{
    // So things don't get overly verbose
    using namespace date;
    using namespace std::chrono;

    // Set up the zones:
    auto nyc_zone = locate_zone("America/New_York");
    auto anc_zone = locate_zone("America/Anchorage");

    // Get the current time in New York and the current time in Anchorage
    auto now_utc = system_clock::now();
    auto now_nyc = nyc_zone->to_local(now_utc).first;
    auto now_anc = anc_zone->to_local(now_utc).first;

    // Output the difference
    std::cout << make_time(now_nyc - now_anc) << '\n';
}
int
main()
{
//所以事情不会变得过于冗长
使用名称空间日期;
使用名称空间std::chrono;
//设置分区:
auto nyc_zone=定位_zone(“美国/纽约”);
自动anc_区=定位_区(“美国/安克雷奇”);
//获取纽约的当前时间和安克雷奇的当前时间
自动现在utc=系统时钟::现在();
自动现在\纽约=纽约\区域->到\本地(现在\ utc);
自动现在\u anc=anc\u区域->到本地(现在\u utc);
//输出差异
std::cout我已经盯着看了几天了,我正在考虑添加一些语法糖到:

这对我来说目前的产出是:

04:00:00.000000

我也不确定该语法是否比当前语法好到足以保证其存在:

int
main()
{
    // So things don't get overly verbose
    using namespace date;
    using namespace std::chrono;

    // Set up the zones:
    auto nyc_zone = locate_zone("America/New_York");
    auto anc_zone = locate_zone("America/Anchorage");

    // Get the current time in New York and the current time in Anchorage
    auto now_utc = system_clock::now();
    auto now_nyc = nyc_zone->to_local(now_utc).first;
    auto now_anc = anc_zone->to_local(now_utc).first;

    // Output the difference
    std::cout << make_time(now_nyc - now_anc) << '\n';
}
int
main()
{
//所以事情不会变得过于冗长
使用名称空间日期;
使用名称空间std::chrono;
//设置分区:
auto nyc_zone=定位_zone(“美国/纽约”);
自动anc_区=定位_区(“美国/安克雷奇”);
//获取纽约的当前时间和安克雷奇的当前时间
自动现在utc=系统时钟::现在();
自动现在\纽约=纽约\区域->到\本地(现在\ utc);
自动现在\u anc=anc\u区域->到本地(现在\u utc);
//输出差异

std::cout现在你们两个都能理解easilyuse boost:确切地说你们的操作系统是什么,或者你们是否想使用便携库(例如boost)那么,你创建了两个GregorianCalendar实例,然后呢?再说一遍,你尝试了什么?现在你们都可以理解easilyuse boost:确切地说,你的操作系统是什么,或者如果你想使用一个可移植的库(例如boost),那么,你创建了两个GregorianCalendar实例,然后呢?同样,你尝试了什么?