【发布时间】:2020-12-11 11:52:13
【问题描述】:
我有一个作为 std::string 的 unix 时间戳,我想将它转换为一个漂亮的日期字符串。 已经提出的问题仅显示获取当前时间的转换(并在所有地方使用“自动”,所以我不确定哪个类是合适的)但是这个 是一个已经存在的 std::string。
std::string beauty_date; //"%d-%m-%Y"
std::string stamp = "1567555200";
time_t stamp_as_time = (time_t) std::stoi(stamp);
我想这需要首先转换为无符号长整数(又名 time_t)。 我的问题是如何将“stamp_as_time”放入beauty_date。
提前致谢!
编辑:这里的 cmets 是我尝试使用 put_time 的方法
std::string beauty_date; //"%d-%m-%Y"
std::string stamp = "1567555200";
time_t stamp_as_time = (time_t) std::stoi(stamp);
beauty_date = std::put_time(std::localtime(&stamp_as_time), "%d-%m-%Y");
这也不行。
【问题讨论】:
-
我跟着它并尝试 std::tm tm = *std::localtime(stamp_as_time);和 beauty_date = std::put_time(&tm, "%d");不幸的是,这不起作用
-
time_t现在通常是 64 位类型,因此您应该改用stoll