2012-06-04 6 views
1

У меня есть приложение, в котором пользователи могут запрашивать некоторые данные на основе даты. Приложение поддерживает различные языки западных языков, и пользователю разрешено вводить запрос в их формате.Извлечение года, месяца и даты с разными языками

различных форматы включают

15.10.2012 
15/10/2012 
10/15/2012 
15-Oct-2012 
15-Okt-2012 

Последний является другим языком и посмотреть таблицы не подходят хорошо для этого, потому что мне нужно определить таблицы поиска на N количество языков я поддерживаю ,

Я считаю, что может быть какое-то решение для платформы MFC/C++ Library/Windows для извлечения информации о дате в различных допустимых форматах. Пожалуйста, помогите, если есть некоторые библиотеки/API.

+0

Возможно, возможно, это было бы идеей, чтобы пользователи вводили свою дату по международным стандартам, то есть ISO 8601 ... Я чувствую, что любой «локализованный» синтаксический анализ * связан *, чтобы дать проблемы, через плохо установленный язык и/или неоднозначные форматы (например, в примере # 2/# 3). Вот почему ISO 8601 был изобретен в первую очередь ... – DevSolar

+0

Просто FWIW, я имел в виду, что yyyy-mm-dd является обязательным. – DevSolar

+1

Попробуйте посмотреть на COleDateTime :: ParseDateTime(). http://msdn.microsoft.com/en-us/library/37t16xc9(v=vs.80).aspx –

ответ

3

В большинстве современных графических интерфейсов пользователю не требуется вводить дату/время с помощью ввода. Обычно есть какие-то календарные элементы управления, которые помогают пользователю вводить дату-время. Не можете ли вы использовать некоторые из этих элементов управления (например, http://msdn.microsoft.com/en-us/library/hhdec0z1(v=vs.80).aspx), чтобы ограничить ввод пользователя? И вы всегда можете отображать дату/время для пользователя в текущей локали, используя функцию microsoft strftime().

+0

'strftime()' является стандартным C, а не Microsoft. – DevSolar

+0

@DevSolar: Я неправильно понял, что .. извините – PermanentGuest

+0

Пользовательский интерфейс довольно старый и не может действительно изменить способ его работы. Кроме того, календарный контроль не может быть установлен :) так что им нужно жить: D Спасибо за ваш ответ. По-видимому, была библиотека (обычная), которая помогла решить проблему, но, как сказал @Dmitry, COleDateTime помогает мне ее решить. Благодарю. – sarat

Смежные вопросы