Wie formatiere ich OffsetDateTime in Java 13 oder höher?Java

Java-Forum
Guest
 Wie formatiere ich OffsetDateTime in Java 13 oder höher?

Post by Guest »

In Java 11 verwendet das Uhrsystem eine Genauigkeit im Millisekundenbereich, aber offenbar verwendet es in Java 13 und höher eine Genauigkeit im Mikrosekundenbereich, was dazu führt, dass meine Tests fehlschlagen. Als Beispiel gibt mir OffsetDateTime.now() dieses Datum „2021-12-10T10:58:05.309594500+01:00“, während ich dieses Datum aus der Datenbank „2021-12-10T10:58:05.309595“ lese +01:00". Ich suche nach einer Möglichkeit, das erste Datum so zu formatieren, dass sie gleich sind. Ich möchte es im OffsetDateTime-Typ und nicht im String-Format haben.
Aktualisierung:
Mir ist aufgefallen, dass dieses Problem aufgetreten ist, als ich die Java-Version von 11 auf 17 aktualisiert habe und nicht auf lokal Dieses Problem tritt auf, wenn Gitlab den Test ausführt.
Das ist der Test:

Code: Select all

@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))
}
Dieser Test schlägt fehl, da Datum und Uhrzeit nicht übereinstimmen. und das ist das Protokoll:

Code: Select all

but was:

Könnten Sie mir bitte helfen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post