我有一个日期字符串。是否有标准库中的函数可以以任何数字格式解析它(例如时间戳或朱利安日)
例如
std::string str("01/01/2017");//Local format date
UINT64 timestamp = function(str);
我不想在函数中传递格式日期。我只想知道以本地格式表示的字符串。
答案 0 :(得分:0)
如果您想使用本地日期格式,可以尝试使用std::get_time
(自C ++ 11以来可用)或使用"x"
作为格式的C函数strftime
。
| x |解析语言环境的标准日期表示|所有| - cppreference.com
如果您愿意,可以使用struct tm
或localtime
将日历时间gmtime
转换为时间戳。
请注意,您必须先设置应用程序的C和C ++语言环境,以便能够使用操作系统区域设置而不是经典的C语言环境。请参阅locale
和std::locale
。设置两者以使它们同步并且不会出现意外情况是很好的。
setlocale(LC_ALL, "");
std::locale::global(std::locale(setlocale(LC_ALL, NULL)));