Разбор даты Java с точностью до микросекунды или наносекунды

СогласноДокументация класса SimpleDateFormat, Java не поддерживает детализацию времени свыше миллисекунд в своих шаблонах дат.

Итак, строка даты, как

2015-05-09 00: 10: 23.999750900 // Последние 9 цифр обозначают наносекунды

когда анализируется через шаблон

гггг-мм-дд чч: мм: сс.ссссссссс // 9 символов 'S'

на самом деле интерпретирует целое число после. символ как (почти 1 миллиард!) миллисекунд, а не как наносекунд, что приводит к дате

2015-05-20 21:52:53 UTC

то есть более 11 дней вперед. Удивительно, но с использованием меньшего количестваS символы по-прежнему приводят к анализу всех 9 цифр (вместо, скажем, самой левой 3 для.SSS).

Есть 2 способа правильно решить эту проблему:

Использовать предварительную обработку строкИспользуйте пользовательскую реализацию SimpleDateFormat

Будет ли какой-то другой способ получить правильное решение, просто предоставив образец для стандарта?SimpleDateFormat реализация, без каких-либо других модификаций кода или манипуляции со строками?

Ответы на вопрос(1)

Ваш ответ на вопрос