将带有参考时间的时间戳转换为格式化时间
Convert timestamp with reference time to formatted time
我想将时间戳转换为格式化的时间。 时间戳是一个双精度值(例如时间戳 = 41274.043(,参考日期从 1.1.1900 00:00 开始,应返回类似 02.01.2017 01:01 的内容。
我找不到有关如何正确设置参考时间的任何信息。有什么建议吗? 要自定义日期,我会使用 strftime((,STL 是必要的......
BR
Jtotheakob
使用 Howard Hinnant 的免费、开源、仅标头库,可以像这样完成:
#include "date/date.h"
#include <iostream>
std::chrono::system_clock::time_point
to_chrono_time_point(double d)
{
using namespace std::chrono;
using namespace date;
using ddays = duration<double, days::period>;
return sys_days{January/1/1900} + round<system_clock::duration>(ddays{d});
}
int
main()
{
std::cout << date::format("%d.%m.%Y %H:%Mn", to_chrono_time_point(41274.043));
}
这简单地将double
转换为表示为double
且周期为days
的chrono::duration
,然后将该duration
舍入为system_clock::duration
,最后将该持续时间添加到 1.1.1900 00:00。 结果是std::chrono::system_clock::time_point
.
可以使用图中同一库中的date::format
格式化std::chrono::system_clock::time_point
。 该程序的输出是:
02.01.2013 01:01
相关文章:
- 时间转换为 24 小时格式 cpp
- C++:将Unix时间转换为非本地时区
- 将带有时区的纪元时间转换为Excel格式的时间?
- 如何将纪元时间转换为time_point
- 如何将标准::时间::d转换为双倍(秒)?
- 在 c++ 中将 ISO 日期时间转换为本地日期时间并提取时间
- C 将NTP服务器返回的时间转换为字符串
- 将时间转换为小时、分钟和秒
- 将文本日期和时间转换为 ATL::CTime
- C Winapi:如何将当前时间转换为字符串
- 12小时到24小时的时间转换
- 如何将Milli秒的时间转换为C 中的filtime
- C 将日期时间转换为时间戳
- 将 NTP 时间转换为日期时偏移 1 天
- 时间转换的建议代码
- 将时间转换为分钟和秒
- 如何将存储在字符串变量中的时间转换为时间格式
- 将ISO时间转换为std::chrono::time_point
- 时间转换程序
- 如何将时间转换为纪元时间