Поиск шаблона метки времени из строки - PullRequest
1 голос
/ 06 февраля 2012

Я хочу преобразовать строку в метку времени, шаблон которой неизвестен. Есть ли какой-либо API, предоставленный Java, который позволяет нам вводить строку и возвращает возможные шаблоны, которые могут с ней работать? Я понимаю, что можно иметь несколько предопределенных шаблонов, по которым можно анализировать и проверять строку. Но, поскольку это временная метка, числовых комбинаций разных дат и времени будет довольно много. Итак, искал эффективный способ выяснения структуры String-Timestamp.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2012

В этом случае сначала я бы переключился на Joda Time: http://joda -time.sourceforge.net /

Затем я бы сгенерировал несколько (постарался максимально уменьшить возможностикак вы можете, так как их слишком много) Шаблоны и попробуйте дату над ними.Если он не выдает ошибку (он же подходит, поместите его в массив), а затем верните массив.Это, вероятно, очень неоптимизированное решение, но я бы начал с него.

Я действительно не думаю, что для этого есть библиотеки.Кроме того, вы можете объяснить, почему вы хотите это сделать.может быть, решение немного проще.

Ура, Евгений.

0 голосов
/ 06 февраля 2012

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

Если вы просто хотите поиграть с чем-то вроде этого, вы можете создать свою собственную реализацию. Допустим, вы анализируете входные данные, а затем вычисляете массив целых чисел. (09, 21, 12, 0, 44, 33) , вы можете предположить, что массив содержит год, день, месяц, минуту, час и секунды (не уверен, что вы можете предположить, что это - просто пример)

Когда у вас есть этот массив, вы можете создать все возможные перестановки этого массива - пример здесь

Затем вы можете создать объект Date для каждой комбинации:

DateTime dt = new DateTime(09, 12, 21, 0, 44, 33, 0);

(приведенный выше пример для JodaTime )

Если вы знаете, например, что значение года всегда будет отправляться с 4 символами, тогда возможное количество комбинаций будет уменьшаться, конечно, далее вы можете предположить, что «26» не будет значением для месяца и т. Д. получить идею.

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