通过提升获得当地时间

Max*_*rai 14 c++ time boost

我没有在文档中找到这个:如何使用boost获取本地时间(更好的格式化)?

Nat*_*ate 20

使用posix_time从系统时钟构造时间对象.

例如,这会将当前系统时间输出为ISO格式字符串:

namespace pt = boost::posix_time;
pt::to_iso_string(pt::second_clock::local_time());
Run Code Online (Sandbox Code Playgroud)

有关格式化替代方法,请参阅上面链接的参考的"转换为字符串"部分和日期时间输入/输出参考.或者,您可以使用访问器函数构建自己的输出字符串.例如,要获得美式日期:

namespace pt = boost::posix_time;
pt::ptime now = pt::second_clock::local_time();
std::stringstream ss;
ss << static_cast<int>(now.date().month()) << "/" << now.date().day()
    << "/" << now.date().year();
std::cout << ss.str() << std::endl;
Run Code Online (Sandbox Code Playgroud)

请注意,月份将被转换为,int因此它将显示为数字.默认输出facet将其显示为三个字母的月缩写(March的"Mar").

  • 注意:所需的包括:``boost/date_time/posix_time/posix_time.hpp``(我之前偶然发现了这个) (2认同)