У нас есть библиотека для генерации отчетов. Он считывает данные из файла данных (SQL, XML, JSON и т. Д.), Затем время и дата могут быть изменены в пользовательском уравнении, а затем отформатированы так, как указано для вывода отчета.
Использование в уравнении позволяет добавить интервал времени, получить части значения, как в «if date.month == 2», и в значительной степени все макросы даты и времени в Excel .
Поскольку данные могут быть в формате JSON (или XML без схемы), дата и время могут быть «2019-01-25», «2019-01-25T14: 32: 23», «2019-01-25T14: 32: 23.12345 "," 2019-01-25T14: 32: 23Z "или" 2019-01-25T14: 32: 23Z-0500 "(последние два также могут иметь" .12345 ").
Если нет смещения часового пояса, мы предполагаем, что дата и время - UTC. Хотя это должно быть правдой, часто это не так, и это местное время, но то, как оно используется, это не имеет значения. Таким образом, сделать его UTC, если не указано смещение часового пояса, работает (до этого момента мы использовали дату).
Первый вопрос - какой класс мне использовать для хранения этого значения? Из того, что я прочитал, я думаю, что ZonedDateTime, но, может быть, Instant?
Второй вопрос - какой класс я должен использовать для расписания, когда мне нужно что-то вроде добавить 3 дня к дате?
Третий вопрос - есть ли какой-нибудь парсер, который может анализировать все разные строки, как я перечислил выше? Или мне нужно вызвать String.contains (), чтобы определить формат, а затем сделать явный шаблон, основанный на этом? И если да, то с помощью какого класса?