Добавьте дату к настоящему моменту, анализируя ввод - PullRequest
0 голосов
/ 01 ноября 2011

Я с трудом пытаюсь разобрать дату в будущем, и я буду признателен за некоторую помощь!

Вот что я хотел бы добавить проанализированную дату к текущей дате (чтобыесть в будущем).Проблема в том, что у меня может быть много разных форматов даты, например:

  • дд
  • ММ-дд
  • гггг-мм-дд

Так что, если пользователь установит что-то вроде 5, возвращаемая дата будет (в нашем интервале времени) 2011-11-05.Если он установит 02-14, это будет 2012-02-14.

Но предположим, что мы 4th of november, а пользователь установил 11-03, это будет 2012-11-03, а не 2011-11-03, поскольку этов прошлом.

Я пытался поиграть с Calendar, Date, SimpleFormat, но не могу заставить его работать.

Хотя мои парсеры (использующие SimpleDateFormat) работают.

Не могли бы выпомогите мне это заархивировать?Я не прошу полный код, просто что-то, что поставило бы меня на правильный путь!

спасибо!:)

Ответы [ 2 ]

2 голосов
/ 01 ноября 2011

Поскольку у вас есть фиксированный список допустимого формата даты ввода, установите для снисходительного поля dateFormat значение false и проверьте, удовлетворяет ли один из них выполненной вами работе или возникло исключение, перейдите к следующему шаблону

dateFormat  = new SimpleDateFormat(PATTERN_ONE);
dateFOrmat.setLenient(false);
dateFormat.parse(INPUT_STRING);
// if an exception is caughtm try with next pattern
1 голос
/ 01 ноября 2011

У меня был очень хороший опыт работы с jodatime - http://joda -time.sourceforge.net / . Оформить Dateformatters в этом.

Он имеет очень обширный API и позволяет вам делать такие вещи, как сложение и вычитание дат - с учетом часовых поясов, летнего времени и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...