如何在c++中将时间转换为windows上的特定时区
How convert time to specific timezone on windows in C++?
有一个Unix时间戳,我需要等效的localtime_s,但是我可以传入时区。另外,我正在寻找一种方法来改变时区编程的应用程序(而不是整个系统),使localtime_s返回正确的值。
奇怪的是,如果我在shell中设置TZ环境变量为GMT,然后启动我的应用程序,localtime_s返回GMT值。
我试过:
::SetEnvironmentVariable("TZ", "GMT");
tzset();
但是它不会改变以后调用localtime_s
的结果。请注意,我是在Windows 7上运行应用程序,使用VS 2013。
如果你愿意使用一个免费的、开源的第三方库,它可以在VS-2013上工作。这里有很多关于如何使用它的例子:
https://github.com/HowardHinnant/date/wiki/Examples-and-Recipes例如,下面是如何输出纽约和芝加哥的当前时间:
#include "tz.h"
#include <iostream>
int
main()
{
auto now = std::chrono::system_clock::now();
std::cout << "Current time in New York: "
<< date::make_zoned("America/New_York", now) << 'n';
std::cout << "Current time in Chicago : "
<< date::make_zoned("America/Chicago", now) << 'n';
}
这只是我的输出:
Current time in New York: 2016-08-12 10:36:24.670966 EDT
Current time in Chicago : 2016-08-12 09:36:24.670966 CDT
相关文章:
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 在Linux for Windows上编译C++代码时出错
- 在Windows上用C++裁剪HBITMAP
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- std::strftime 在 Windows 中使用 GMTIME 将时区 UTC 显示为 UTC+1
- 如何从Qt绑定到在Windows 7 / 8 / 10中连接/断开USB设备事件
- 是与windows平台绑定的Microsoft Visual C++
- 正在获取Windows时区信息(C++/MFC)
- DDX 数据绑定与 Windows 窗体找不到类方法
- 请帮助我检查Silverlight for Windows Embedded中有关数据绑定的代码
- 如何获取绑定到我正在运行的控制台窗口的进程列表,这些进程也可以在 Windows 2000 中工作?
- Windows套接字api绑定函数编译问题
- 在Windows中使用c++获取时区
- 如何在c++中将时间转换为windows上的特定时区
- 如何在不绑定工具的情况下使用Windows工具提示控件
- Windows套接字无法绑定VPN IP地址
- Windows 8 APP,用数据绑定改变XAML文本框的文本.游戏循环工作线程导致问题