C++ 将wxString转换为时间

C++ 将wxString转换为时间,c++,datetime,wxwidgets,time-t,C++,Datetime,Wxwidgets,Time T,我有一个wxString,它的值是日期。日期格式的存储取决于区域设置或区域设置 例如,wxString dateStr=“9/10/2013”[dd/mm/yyyy格式适用于意大利作为区域语言环境设置] 当我使用wxDateTime::ParseDate(dateStr)解析日期字符串并尝试使用wxDateTime::GetTicks()函数在时间上转换它时。但当日数小于或等于12时,例如2013年3月10日或2013年12月11日,它会交换日数和月数的值。我得到的月数分别是3和12,日数分别是

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

例如,wxString dateStr=“9/10/2013”[dd/mm/yyyy格式适用于意大利作为区域语言环境设置]

当我使用wxDateTime::ParseDate(dateStr)解析日期字符串并尝试使用wxDateTime::GetTicks()函数在时间上转换它时。但当日数小于或等于12时,例如2013年3月10日或2013年12月11日,它会交换日数和月数的值。我得到的月数分别是3和12,日数分别是10和11。但是,如果日期大于12,即2013年10月14日或2013年10月28日,则可以正常工作

我想根据区域设置将上述日期字符串转换为时间。我使用windows和linux进行开发环境

请使用示例或代码片段帮助我解决此问题。

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


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

可能与系统的区域设置有关?如果它们被设置为类似于
en_US
的值,那么日期格式将被解释为愚蠢的日期格式。ISO 8601 FTW感谢您的回复J.Pileborg,但我有一个应用程序,它应该在不同的国家运行,具有不同的系统区域设置,因此,我无法在wxDateTime::ParseDateFormat中传递日期格式,因为它应该从系统的区域设置中选取。您能否建议从系统区域设置中选取区域设置,并使用该日期格式解析日期字符串。wxDateTime::ParseFormat()[可以使用“%x”作为格式。@Gunjan49是的,它使用与相同的格式。