在使用JSON作为交换的项目中,我们遇到了这样的问题:即使两者都被描述为long
原始数据类型,C ++和Java中的时间戳(以毫秒为单位)也完全不同。
每种语言使用什么样的标准,为什么会有区别?
例如,1407315600
是一个C ++时间戳,它引用06.08.2014 09:00:00 UTC
而在Java中它是不可读的!
使用new Date(1407315600)
读取Java中的时间戳。
答案 0 :(得分:2)
尝试
new Date(1407315600 * 1000)
Java日期需要毫秒,你所拥有的C ++时间戳看起来就像几秒钟。
通常,C ++ time_t函数给出了自纪元以来的秒数。
要获得C ++中的时间(以Java为单位),请参考this.
<强> C ++ 11 强>
如果平台上有C ++ 11,则chrono::high_resolution_clock
可用于获得更高的分辨率(注意;时钟可能是其他时钟之一的别名或实现定义的时钟)。
#include <iostream>
#include <chrono>
int main()
{
using namespace std;
using namespace std::chrono;
milliseconds ms;
ms = duration_cast<milliseconds>(high_resolution_clock::now().time_since_epoch());
cout << ms.count() << endl;
}