我从遵循此规范的数据提供商那里收到时间戳:number of 100 nanoseconds since 1601
我正在使用boost::posix_time::ptime
,我想将时间戳转换为posix时间。有没有简单的方法可以做到这一点?
最佳答案
该系统何时从儒略历转换为公历?有些国家在1601年1月1日之前转换;其他人直到很久以后才切换。这将严重影响您的计算-大约需要11天。
由于一秒内有107个单位,每个单位100 ns,因此您可以将起始数字除以107,以得出自基准时间以来的秒数(剩余时间是一秒的分数)。然后,将其除以86400,得出天数(余数为一天中的时间)。然后,您可以根据天数计算日期。
由于POSIX时间使用1970-01-01 00:00:00作为参考,因此您可能只需要计算1601-01-01 00:00:00和POSIX纪元之间的正确秒数(众所周知) ,然后从您计算出的秒数中减去该数字。