У меня есть wxString, которая имеет дату в качестве значения. Формат даты сохраняется в зависимости от региональных настроек или региональных настроек.
Например, wxString dateStr = «9/10/2013» [формат дд / мм / гггг для Италии в качестве региональной настройки локали].
Когда я анализирую строку даты с помощью wxDateTime :: ParseDate (dateStr) и пытаюсь преобразовать ее в time_t с помощью функции wxDateTime :: GetTicks (). Но это меняет значение дня и месяца, когда день меньше или равен 12, например 3/10/2013 или 12/11/2013. Я получаю месяц как 3 и 12, а день как 10 и 11 соответственно. Но это прекрасно работает, если дата больше 12, т.е. 14/10/2013 или 28/10/2013.
Я хочу преобразовать приведенную выше строку даты в time_t в зависимости от настроек локали. Я использую Windows, а также Linux для разработки ENV.
Пожалуйста, помогите мне решить эту проблему с помощью примера или фрагмента кода.
Я предлагаю вам использовать wxDateTime::ParseDateFormat
вместо этого вы можете указать точный формат строки даты.
Причина у вас проблемы ParseDate
является то, что он сначала пытается разобрать строку даты в американском формате (где формат mm/dd/yyyy
), и если это не удается, он пытается другие форматы.
Других решений пока нет …