Самый быстрый способ определить, является ли строка действительной датойJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Самый быстрый способ определить, является ли строка действительной датой

Сообщение Anonymous »

Я поддерживаю общую библиотеку на работе, которая выполняет много проверок заданной строки, чтобы увидеть, является ли это допустимой датой. У Java API, библиотеки Commons-Lang и Jodatime есть методы, которые могут проанализировать строку и превратить ее в дату, чтобы сообщить, на самом деле это действительная дата или нет, но я надеялся, что будет способ выполнять проверку без фактического создания объекта даты (или DateTime, как в случае с библиотекой Jodatime). Например, вот простой кусок примеров кода: < /p>

public boolean isValidDate(String dateString) {
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
try {
df.parse(dateString);
return true;
} catch (ParseException e) {
return false;
}
}
< /code>

Это мне кажется расточительным, мы выбрасываем полученный объект. Из моих тестов около 5% нашего времени в этой общей библиотеке тратится на проверку дат. Я надеюсь, что я просто упускаю очевидный API. Любые предложения были бы великолепны! Один и тот же формат даты всегда (вероятно, yyyymmdd). Я также думал об использовании корпорации, но тогда он должен быть осведомлен о количестве дней в каждом месяце, легочных годах и т. Д. < /p>



Результаты < /strong> < /p>

Проанализировал дату 10 миллионов раз < /p>

Using Java's SimpleDateFormat: ~32 seconds
Using commons-lang DateUtils.parseDate: ~32 seconds
Using JodaTime's DateTimeFormatter: ~3.5 seconds
Using the pure code/math solution by Slanec: ~0.8 seconds
Using precomputed results by Slanec and dfb (minus filling cache): ~0.2 seconds
< /code>

Были некоторые очень творческие ответы, я ценю это! Я думаю, что теперь мне просто нужно решить, какую гибкость мне нужно, как я хочу, чтобы код выглядел. Я собираюсь сказать, что ответ DFB правильный, потому что он был чисто самым быстрым, что было моим первоначальным вопросом. Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/114 ... valid-date
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как проверить, является ли строка действительной датой, времени или dateTime
    Anonymous » » в форуме Php
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • C ++ Дни между датой и сегодняшней датой
    Anonymous » » в форуме C++
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Правильно определить, является ли строка даты допустимой датой в этом формате.
    Anonymous » » в форуме Php
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Самый быстрый/самый быстрый способ конвертировать фреймы данных pandas в таблицы слов
    Anonymous » » в форуме Python
    0 Ответы
    57 Просмотры
    Последнее сообщение Anonymous
  • Как определить входной html -элемент с типом = "датой" и форматом "dd/mm/yyyy"
    Anonymous » » в форуме Html
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»