0

我有一个以日期为值的 wxString。日期格式的存储取决于区域设置或区域设置。

例如。wxString dateStr = "9/10/2013" [意大利的 dd/mm/yyyy 格式作为区域语言环境设置]。

当我使用 wxDateTime::ParseDate(dateStr) 解析日期字符串并尝试使用 wxDateTime::GetTicks() 函数将其转换为 time_t 时。但是当日小于或等于 12 时,它会交换日和月的值,例如 2013 年 3 月 10 日或 2013 年 11 月 12 日。我将月份分别设为 3 和 12,将天分别设为 10 和 11。但如果日期大于 12 即 14/10/2013 或 28/10/2013,它工作正常。

我想根据语言环境设置将上述日期字符串转换为 time_t。我正在使用 windows 和 linux 来开发环境。

请通过示例或代码片段帮助我解决这个问题。

4

1 回答 1

1

我建议您wxDateTime::ParseDateFormat改用,然后您可以指定日期字符串的确切格式。

您遇到问题的原因ParseDate是它首先尝试解析美国格式的日期字符串(格式为mm/dd/yyyy),如果失败,它会尝试其他格式。

于 2013-04-01T02:16:27.057 回答