【发布时间】:2017-10-05 14:14:21
【问题描述】:
我正在将 CLI C++ 代码转换为标准 C++,并且我有一段代码可以获取 UINT64 数字(来自远程服务器 - 所以我无法更改为我得到的时间的格式/精度)并将其转换进入 DateTime 对象,然后输出以下值:myDatetime.ToString("dd/MM/yyyy hh:mm:ss.fffffff tt")。 我还没有找到在 C++ 中将 unsigned int 64 转换为时间的方法。 下面的代码对这么大的数字没有任何作用(这是我从服务器获得的 64 位数字)。
time_t rawtime=131274907755873979
localtime_s(&timeinfo, &rawtime);
我需要一些帮助:)
我的问题没有在线程Convert Epoch Time string to Time 中得到回答,因为它不适用于我需要的大数字。例如数字 131274907755873979 这是我从服务器得到的。该值的函数 ctime 只返回 NULL。 我需要一种方法来将我作为 unsigned int64 获得的时间转换为标准 C++ 时间对象。
【问题讨论】:
-
您不会认为将该数字转换为 DateTime 对象可能与该问题有丝毫关联,对吗?
-
关于“标准 C++ 时间对象”。 C++11 或更高版本是可接受的标准吗?
-
最好是 C++11,因为我不确定我们的生产服务器上会有什么编译器版本。但我希望 C++14 也可以接受
-
时髦。 Howard Hinnant's time libraries may be helpful to you. 可能需要进行一些 Epoch 转换(请参阅下面 @MikeNakis 的回答)。