【发布时间】:2013-03-22 03:10:58
【问题描述】:
我有一个以日期为值的 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 开发环境。
请通过示例或代码 sn-p 帮助我解决这个问题。
【问题讨论】:
-
可能与您系统的区域设置有关?如果它们设置为
en_US之类的东西,那么日期格式将被解释为愚蠢的日期格式。 -
ISO 8601 FTW xkcd.com/1179
标签: c++ datetime wxwidgets time-t