从Howard Hinnant的日期库中提取日期和时间

geo*_*sos 1 c++ boost std c++11

我正在使用Howard Hinnant的免费,开源,跨平台的C++ 11/14时区库:

#include "date/tz.h"
#include <iostream>

int
main()
{
    std::cout << date::make_zoned("Europe/Rome", std::chrono::system_clock::now()) << '\n';
}
Run Code Online (Sandbox Code Playgroud)

我得到这样的输出:

2017-11-29 16:24:32.710766 CET
Run Code Online (Sandbox Code Playgroud)

是否可以从zoned_time提取日期(例如:星期一)和HH:MM的不同字符串?能否zoned_time转换为结构TM?

Joh*_*nck 6

试试这个:

date::format("%A", date::make_zoned("Europe/Rome", std::chrono::system_clock::now())
Run Code Online (Sandbox Code Playgroud)

这给了一周的一天.在这里查看更多格式字符串:http://man7.org/linux/man-pages/man3/strftime.3.html

没有的默认值date::format()%F %T %Z.

  • strftime标志和我的lib中的标志之间可能存在细微差别/增强.我放弃了通过引用导入这些标志的定义.所以这是官方列表:https://howardhinnant.github.io/date/date.html#to_stream_formatting (3认同)