Я пытаюсь использовать Joda для поддержки всех времен XACML-данных, но у меня возникают проблемы с его синтаксическим разбором, начиная с строк, таких как «P50DT4H4M3S». Я подозреваю, что проблема в некоторых случаях разделена на ISO и W3C, и Joda поддерживает путь ISO.JodaTime для XML Schema/XACML Типы длительности
В любом случае, есть простой способ преодолеть разрыв. Я хотел бы избежать создания собственного анализатора, если это возможно.
Я знаю типы javax.xml, которые, кажется, делают то, что мне нужно, за исключением его основанного на GregorianCalendar, которого я надеялся избежать, используя Joda.
Длительности независимы от календарей. Разбирайте строку продолжительности в линейное время (секунды, мс, что угодно). Затем вы сможете использовать это в арифметике даты с любой системой класса даты/календаря, которую вы хотите. – dthorpe
FWIW, продолжительность W3C поддерживается SOAP. Посмотрите, можете ли вы найти SOAP lib для Java и использовать одну из своих функций для синтаксического анализа строки продолжительности. В .NET я использую System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDuration – dthorpe
Существует множество пакетов, которые анализируют нужные мне форматы; javax.xml. *, чтобы назвать один. Проблема в том, что они не взаимодействуют с Joda DateTime и многими другими, которые я использую в другом месте, поэтому мне действительно нужно заставить Duration работать. – Bradjcox