在C ++ / CX解析JSON ISO8601日期(Parse JSON ISO8601 date

2019-09-20 15:29发布

我有一个日期字符串从JSON“2012-08-01T15:42:06Z”来了,要分析,在Windows运行时。 据我所知,只有的COleDateTime可用来处理这个问题。

我只能得到它正确地解析字符串时,我拿出“T”和“Z”字,但是这增加了在我结束一个额外的解析步。

作品:

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);

任何人有任何想法?

Answer 1:

如果您的日期字符串格式一致,可以使用std::get_time时间来解析成一个tm结构,相关的位复制到SYSTEMTIME ,并从那里转换为FILETIME再到Windows::Foundation::DateTime

对信息std::get_time : http://en.cppreference.com/w/cpp/io/manip/get_time

代码转换从SYSTEMTIMEDateTime : 我如何在地铁(C ++ / CX)的应用程序分析日期?



文章来源: Parse JSON ISO8601 date in C++/CX