【发布时间】:2017-09-25 08:00:09
【问题描述】:
我只想从 boost C++ 中的 std::string 日期时间获取小时和分钟。 我有以下代码。
std::string d_time = std::string("2017-09-25 12:23:10");
我可以通过对上面的字符串进行标记来获得它,但是是否有任何标准的 boost 函数只能给出 "d_time" 的小时和分钟?
提前致谢。
【问题讨论】:
-
有些系统有一个叫做
strptime的函数,可以把时间和日期字符串转换成struct tm,从中你可以得到你想要的信息。你可以检查一下。 -
您还可以将
std::get_time与std::istringstream结合使用。 -
但是 struct tm 在 windows 中不可用吗?
-
如果您在
std命名空间中有函数,您可以确定它来自标准,并且任何符合标准的编译器都必须完整地实现它。包括像std::tm这样的结构。平台无关紧要(请记住,struct tm是最初来自 C 标准的旧结构,并且已在包括 Windows 在内的所有平台上存在了很长时间)。 -
"std::get_time" 和 "std::put_time" 在 gcc