我有一个来自JSON“2012-08-01T15:42:06Z”的日期字符串,并希望在Windows运行时解析它。据我所知,只有 COleDateTime 可以解决这个问题。
当我拿出'T'和'amp;'时,我只能正确地解析它。 'Z'字符,但这会在我的结尾添加一个额外的解析步骤。
WORKS:
COleDateTime dateTime;
dateTime.ParseDateTime(L"2012-08-01 15:42:06", 0UL, 1033UL);
失败:
COleDateTime dateTime;
dateTime.ParseDateTime(L"2012-08-01T15:42:06Z", 0UL, 1033UL);
有人有任何想法吗?
答案 0 :(得分:4)
如果您的日期字符串格式一致,您可以使用std::get_time
将时间解析为tm
结构,将相关位复制到SYSTEMTIME
并从那里转换为{ {1}}然后转到FILETIME
。
Windows::Foundation::DateTime
上的信息:http://en.cppreference.com/w/cpp/io/manip/get_time
从std::get_time
转换为SYSTEMTIME
的代码:How do I parse a date in a Metro (C++/CX) app?