У меня есть этот фрагмент кода на Scala, использующий java.util .Дата из Java:
val ISO8601Format = new SimpleDateFormat("yyyyMMdd'T'HH:mm:ss")
ISO8601Format.setLenient(false)
val currentDate = new Date()
val str = ISO8601Format.format(currentDate)
val dateParsed = ISO8601Format.parse(str)
val dateParsed2 = ISO8601Format.parse(str)
val dateParsed3 = ISO8601Format.parse(str)
println(currentDate.getTime) // 1429124862000
println(dateParsed.getTime) // 1429124862157
println(dateParsed2.getTime) // 1429124862000
println(dateParsed3.getTime) // 1429124862000
ISO 8601 отличается от стандарта, поскольку я реализую модифицированную версию без смещения от UTC. потому что XML-RPC (протокол, который я реализую) использует этот формат.
Проблема в том, что первая проанализированная дата всегда возвращает другое значение (последние три цифры отличаются), чем начальная дата (currentDate). Однако, если вы анализируете одну и ту же отформатированную строку несколько раз, они всегда возвращают исходную дату, которую она должна возвращать.
Почему? Жук? Любая идея исправить это?
(Я делаю библиотеку для Scala, и мне нужно поддерживать Java Dates, пожалуйста, не рекомендуйте Joda-Time а>.)
2015-12-25T00:00:00.000
, в разные моменты времени в каждой местности в конкретную полночь. - person Basil Bourque   schedule 16.04.2015