我暂时停留在 GCC4.8 上。我想将当前时间打印为秒以外的时间。如果 put_time
工作,我的代码会很简单,像这样:
std::cout << std::setw(24) << std::put_time(c_time, "[%T%z %F] ");
没有 put_time
,我必须访问 c_time
的元素手动并手动进行所有格式化,这对 a** 来说会很痛苦,如果可能的话,我宁愿避免这样做。请注意,这并不意味着我不想以任何方式与 C 交互,即使是间接的——我只想尽可能避免直接用 C 编码。
但是,我找不到 std::put_time
的任何替代品, 除了 strftime
,我想避免这种情况,因为它需要几乎两倍的代码行并且更难阅读,至少对我来说是这样。另外,这是 C++,而不是 C,所以我想尽可能避开 C 函数。
我错过了什么吗? std::put_time
是否有内置替代方案?哪个在 GCC 4.8 下工作?
请注意,它不必以完全相同的方式工作 - 例如,如果它直接将其打印到输出,而不是作为流操纵器,那也很好,就像一个函数一样返回了 std::string
包含格式化的时间。
我用谷歌搜索了一番,发现 <chrono>
,但这不起作用,因为它没有任何东西可以自动格式化时间。我仍然需要手动完成,而且我很确定它会更多工作,因为我必须将自纪元以来的秒数解析为年、月、日等。
我是一名优秀的程序员,十分优秀!