Нет решения
Я не слышал ни об одном классе, библиотеке или базе данных, которые бы представляли пикосекундное разрешение времени.
Как прокомментировал Вопрос, и как классно учил Д-р. Грейс Хоппер , свет проходит всего около фута за наносекунду. Свет движется лишь на долю миллиметра за пикосекунду. Это меньше, чем расстояние, пройденное компьютерной технологией для перемещения электрических сигналов. Поэтому такое точное измерение времени вряд ли будет практичным или актуальным в нашей жизни.
Округление
Если пиктограммы на самом деле не нужны вашему приложению, я предлагаю обрезать вашу строку, обрезая любые цифры после первых девяти долей секунды. Затем разберите как Instant
или LocalDateTime
и т. Д.
Свернуть свой класс
Если вы должны представить пикосекунды, я предлагаю разделить вашу входную строку на две части на основе разделителя десятичных дробей (который в соответствии со стандартом ISO 8601 может быть либо запятой, либо точкой FULL STOP, с запятой предпочтительно).
- Разобрать первую часть как
LocalDateTime
или Instant
или подсчет целых секунд с начала эпохи, например 1970-01-01T00: 00: 00Z.
- Затем проанализируйте вторую часть как 64-битное длинное целое.
Вы могли бы написать небольшой класс с именем что-то вроде PicoMoment
, с методом parse
, для внутреннего представления этих двух частей. Посмотрите исходный код OpenJDK, чтобы увидеть аналогичные представления, сделанные внутри классов java.time .
Если вы пойдете по этому пути, я предлагаю вам следовать java.time API в качестве модели.