在 Win32 中从字符串中解析日期

Posted

技术标签:

【中文标题】在 Win32 中从字符串中解析日期【英文标题】:Parse a Date from a String in Win32 【发布时间】:2008-10-24 16:05:03 【问题描述】:

我有一个包含日期的字符串,以及另一个包含第一个字符串的日期格式的字符串。有没有可以调用的函数将该日期转换为类似 SYSTEMTIME 结构的函数?基本上,我想要GetDateFormat() 的反面。

【问题讨论】:

如果不想使用 MFC,可以直接使用 VarDateFromStr。 [VarDateFromStr ](docs.microsoft.com/en-us/windows/desktop/api/oleauto/…) 【参考方案1】:

它与您描述的不太一样,但我会从使用COleDateTime::ParseDateTime 开始。它适用于本地化的日期时间格式。

【讨论】:

我看到了该函数,并且鉴于它不采用格式,在某些情况下(月/日/年与日/月/年)似乎会混淆。跨度> 它确实需要一个语言环境,所以这应该会有所帮助。我不记得有没有:试试看。【参考方案2】:

不,但您可以编写一个函数,将日期格式字符串转换为sscanf 格式字符串和一系列变量。然后将变量中的数据复制到SYSTEMTIME 结构中,一切就绪。

这不是微不足道的,但如果您必须支持许多不同的日期格式,它可能是最灵活的安排。

【讨论】:

【参考方案3】:

在源文件Here.

我有一个以一堆不同格式读取日期的函数,该函数称为

bool kGUIDate::Setz(const char *datestring)

这是一个按日/月/年读取并同时处理小时/分钟/秒的类。

代码是 LGPL,所以请随意复制。

/* formats excepted are: */
/* yyyy-mm-dd */
/* Wdy, DD-Mon-YY HH:MM:SS GMT */
/* Wdy, D Mon YY HH:MM:SS GMT */

【讨论】:

【参考方案4】:

如果您有 POSIX 系统,则可以使用 strptime() 函数。不幸的是,MSVC 2005 在它的 C 运行时中似乎没有这个功能。 MinGW for Windows 可以。

【讨论】:

这与问题关系不大。 完全相反,这是我认为的答案。

以上是关于在 Win32 中从字符串中解析日期的主要内容,如果未能解决你的问题,请参考以下文章

在 JS 中从 Wikidata 解析 ISO-Date

在 Swift 中从日期字符串转换日期

ios中从字符串到NSDate的日期转换

在Recyclerview Android中从Firebase检索日期

如何在javascript中从字符串创建日期对象[重复]

解析字符串到日期:非法模式字符'T'。