Я пишу парсер для интерфейса командной строки внешнего инструмента, и я использую библиотеку компиляторов Scala. В качестве части этого мне нужно проанализировать стандартную дату формата EEE MMM d HH: mm: ss yyyy Z.Проанализируйте дату из CharSequence со стандартными шаблонами ...
Компараторы анализатора Scala являются «потоковыми» и работают с CharSequence вместо Strings. Это затрудняет использование java.text.DateTimeFormat или DateTimeFormat от JodaTime, поскольку они оба работают со строками.
На данный момент я должен написать свой собственный регулярный анализатор, подобный этому, чтобы проанализировать дату, но я бы скорее включил работу, которая была выполнена с JodaTime, в мой синтаксический анализатор. Я действительно не хочу изобретать велосипед. Я смотрел исходный код JodaTime, и я не совсем уверен, почему он должен работать со строками, а не только с CharSequences. Я пропустил какой-то аспект?
А я вижу. Таким образом, вы хотите, чтобы lexer regex datetime продвигался, как только появился следующий байт из сети. Кажется, что нет другого способа сделать это, кроме как fork joda-time, и переписать его совпадение, чтобы использовать регулярное выражение или еще лучше, создайте собственную библиотеку анализа данных datetime на основе потоков/regex и поделитесь с нами. Я все еще верю, что ваш ответ здесь - путь. –
Да, я еще не нашел другую библиотеку анализа времени и времени, основанную на потоках. Плюс joda-time - это одноразовая дата api для использования в любом случае, не так ли? Я отправил по электронной почте Стивена Колеборна об этом, и он согласился, что он должен разбирать CharSequence, но может быть проблемы с обратной совместимостью, чтобы он ничего не мог обещать. Худший случай, я должен буду поддерживать свою вилку :) –
Или нет. Я бы не сказал, что joda-time - это все решения для всех ваших потребностей в датах. Я столкнулся с ситуациями, когда шаблон joda-time просто не мог выразить формат, который мне нужен, и мне пришлось вернуться к SimpleDateFormat (ISO 8601 и RFC 3339 имеют множество вариаций). –