1

我正在尝试使用类ParseDateTime提供的方法解析日期COleDateTime。但是在同一个程序中解析两个不同的日期会返回不一致的月份值。

代码片段:

COleDateTime dtCreated;
dtCreated.ParseDateTime(safe_cast<CString>(strCreatedDate));

不一致的结果:

if strCreatedDate= "10/7/2020" (mm.dd.yyyy格式) then dtCreated.GetMonth()= 7 (但应该是 10

if strCreatedDate= "7/29/2020" ( mm.dd.yyyy格式) then dtCreated.GetMonth()= 7 (在这种情况下是正确的)

更新:

变量中存在的日期值strCreatedDate可以是“dd.mm.yyyy”或“mm.dd.yyyy”格式。但我确实在单独的变量中提供了有关可用数据格式的信息。根据格式,我想COleDateTime正确解析 DateTime 字符串。我怎样才能做到这一点?

4

1 回答 1

1

由于String^您的输入可以使用DateTime::ParseExact,然后转换DateTimeCOleDateTimeusing DateTime.ToOADate

COleDateTime dtCreated(DateTime::ParseExact(
    strCreatedDate, isDMY ? "d.M.yyyy" : "M.d.yyyy", nullptr).ToOADate());
于 2021-05-21T10:59:23.500 回答