我该如何解析日期字符串?

时间:2017-11-29 07:15:18

标签: c++

我有一个日期字符串。是否有标准库中的函数可以以任何数字格式解析它(例如时间戳或朱利安日)

例如

 std::string str("01/01/2017");//Local format date
 UINT64 timestamp = function(str);

我不想在函数中传递格式日期。我只想知道以本地格式表示的字符串。

1 个答案:

答案 0 :(得分:0)

如果您想使用本地日期格式,可以尝试使用std::get_time(自C ++ 11以来可用)或使用"x"作为格式的C函数strftime

  

| x |解析语言环境的标准日期表示|所有|    - cppreference.com

如果您愿意,可以使用struct tmlocaltime将日历时间gmtime转换为时间戳。

请注意,您必须先设置应用程序的C和C ++语言环境,以便能够使用操作系统区域设置而不是经典的C语言环境。请参阅localestd::locale。设置两者以使它们同步并且不会出现意外情况是很好的。

setlocale(LC_ALL, "");
std::locale::global(std::locale(setlocale(LC_ALL, NULL)));