尝试使用 std::get_time 解析 YYMMDD 并失败

2021-12-22 00:00:00 visual-c++ c++ std

我正在尝试这样做但失败了:

I'm trying to do this and failing:

std::istringstream ss("1212");
ss >> std::get_time(&t, "%y%m");
if (ss.fail()) // every time!

这没问题:

std::istringstream ss("12-12");
ss >> std::get_time(&t, "%y-%m");

知道我做错了什么吗?我还能用什么,因为 Windows 似乎没有 srtptime

Any ideas what i'm doing wrong? what can i use otherwise as windows doesnt appear to have a srtptime

windows/vs13TIA

windows/vs13 TIA

推荐答案

Visual Studio 似乎没有正确实现规范,GCC 直到 5.0 版.如果您继续在 VS13 甚至 VS15 中使用 std::get_time,您将需要手动添加分隔符以便能够解析时间,直到他们最终意识到这个错误.

Visual Studio does not seem to implement the spec properly, nor did GCC until version 5.0. If you continue to use std::get_time with VS13 or even VS15, you will need to manually add delimiters to be able to parse times until they finally get around to realizing this bug.

相关文章