在 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 中从字符串中解析日期的主要内容,如果未能解决你的问题,请参考以下文章