时间戳转换错误
Wrong conversion of the timestamp
我是C++新手,我在使用 c++ 转换时间戳 UNIX 时遇到问题,因为转换正好提前一小时,我认为错误是愚蠢的,并且在字符串中转换时间戳,因为时间戳的值是正确的。
这是我的代码
string BlockHeader::convertTimeStamp() {
char data[30];
time_t timeToValue = time;
tm *tmTime = localtime(&timeToValue);
strftime (data,30,"%F %T", tmTime);
string dataString = string(data);
cout << dataString;
return dataString;
}
值正确为1231006505 -> 2009-01-03 18:15:05
但值转换为2009-01-03 19:15:05
对不起,我的英语很糟糕,但我的学习。
感谢您的帮助
正确的值是 1231006505 -> 2009-01-03 18:15:05
不,不是因为
欧洲/罗马
欧洲/罗马时区比 UTC 早一小时,因此1231006505在该时区的正确时间为 2009-01-03 19:15:05。
如果你想要UTC时间,那么你需要使用gmtime
而不是localtime
。函数名称中的本地是指本地时区。
使用 gmtime
而不是 localtime
。
本地时间会考虑您的时区(现在为 UTC +1(,GMTIME 不会。
相关文章:
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- C++使用params创建线程函数会导致转换错误
- 在混合代码库中将C转换为C++时出现许多包含错误
- 为什么g++在未执行的代码处标记强制转换错误
- 错误:从"int"到枚举c++的转换无效
- 错误 C2679:二进制"<<":未找到采用类型 'std::string_view' 的右侧操作数的运算符(或者没有可接受的转换)
- 从标准::未来<void>到非标量标准::未来<bool>引发的错误转换
- 使用宏的错误转换
- 在 opencv 中使用 Color_YUV2BGR 从 YUV 到 BGR 的错误转换
- 无法通过此操作,因为类型的错误转换
- PyQt5:使用自定义信号时 int 对象的错误转换
- 从长途错误转换
- C 错误:转换为非量表类型
- C 错误:转换为执行字符集
- 使用SOCI从PostgreSQL数据库获取数据时发生错误转换
- 分段错误C++转换问题
- 在ARM上的Qt中从双精度到QString的错误转换
- C++浮点转换为Python浮点错误转换
- 错误:转换为非标量类型