如果你不关心 API,你可以使用boost::date_time它是time_facet。
到目前为止的简短示例:
// setup facet and zone
// this facet should result like your desired format
std::string facet="%Y%m%d-%H:%M:%s";
std::string zone="UTC+00";
// create a facet
boost::local_time::local_time_facet *time_facet;
time_facet = new boost::local_time::local_time_facet;
// create a stream and imbue the facet
std::stringstream stream(std::stringstream::in | std::stringstream::out);
stream.imbue(std::locale(stream.getloc(), time_facet));
// create zone
boost::local_time::time_zone_ptr time_zone;
time_zone.reset(new boost::local_time::posix_time_zone(zone));
// write local from calculated zone in the given facet to stream
stream << boost::local_time::local_microsec_clock::local_time(time_zone);
// now you can get the string from stream
std::string my_time = stream.str();
这个例子可能不完整,因为我复制了一些代码,但我希望你明白了。
使用刻面,您可以设置格式。(带分形的%s
小 s,不带分形的大 S)设置秒与分形。您可以在文档方面格式中阅读此内容。
时区用于计算您的本地机器时间到正确的区域。