需要跨平台,所以可选的只有std 和 boost:
boost 比较复杂了
#include <boost/date_time/local_time/local_time.hpp>
std::string gmt_time_now() {
boost::local_time::time_zone_ptr GMT_zone(
new boost::local_time::posix_time_zone("GMT"));
auto now = boost::local_time::local_microsec_clock::local_time(GMT_zone);
std::stringstream ss;
auto* output_facet = new boost::local_time::local_time_facet();
auto* input_facet = new boost::local_time::local_time_input_facet();
output_facet->format("%Y-%m-%dT%H:%M:%SZ");
ss.imbue(std::locale(std::locale::classic(), output_facet));
ss.imbue(std::locale(ss.getloc(), input_facet));
ss << now;
return ss.str();
}
还有更简便的std 方法 chrono
std::string gmt_time_now() {
/**
* Generate a UTC ISO8601-formatted timestamp
* and return as std::string
*/
auto now = std::chrono::system_clock::now();
auto itt = std::chrono::system_clock::to_time_t(now);
std::ostringstream ss;
ss << std::put_time(gmtime(&itt), "%FT%TZ");
return ss.str();
}
需要支持 c++11
原文链接: https://www.cnblogs.com/hustcpp/p/12155754.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/191494
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!