Как отформатировать OffsetDateTime в Java 13 или выше?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как отформатировать OffsetDateTime в Java 13 или выше?

Сообщение Anonymous »

В Java 11 система часов использует точность до миллисекунды, но, очевидно, в Java 13 и более поздних версиях она использует точность до микросекунд, и это приводит к сбою моих тестов. Например, OffsetDateTime.now() дает мне эту дату «2021-12-10T10:58:05.309594500+01:00», а когда я читаю эту дату из базы данных «2021-12-10T10:58:05.309595 +01:00». Я ищу способ отформатировать первую дату таким образом, чтобы они были равны. Я хочу, чтобы он имел тип OffsetDateTime, а не строку.
Обновление:
Я понял, что эта проблема возникла, когда я обновил версию Java с 11 до 17, а не локальную, я получите эту проблему, когда gitlab запустит тест.
это тест:

Код: Выделить всё

@Test
fun `can store, find and delete a failed-message`() {
// given: a failed-message
val failedMessage = FailedMessage(
failedMessageId = FailedMessageId("the-subcription", "the-message-id"),
messageAttributes = mapOf("one" to "een", "two" to "twee"),
messagePayload = "message-payload",
exception = "exception",
dateTime = OffsetDateTime.now(),
stackTrace = "stackey tracey"
)

failedMessageRepository.store(failedMessage)

assertEquals(failedMessage, failedMessageRepository.find(failedMessage.failedMessageId))
}
этот тест не пройден из-за неравных дат и времени. и это лог:

Код: Выделить всё

but was:

Не могли бы вы мне помочь?

Подробнее здесь: https://stackoverflow.com/questions/703 ... 3-or-above
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»