[JAVA] Die Serialisierung von org.joda.time.DateTime zu JSON im ISO8601-Format erfolgt in Millisekunden

// Groovy Version: 2.4.5 JVM: 1.8.0_77 Vendor: Oracle Corporation OS: Mac OS X
@Grab('com.fasterxml.jackson.core:jackson-core:2.8.5')
@Grab('com.fasterxml.jackson.datatype:jackson-datatype-joda:2.8.5')

@Grab('joda-time:joda-time:2.9.6')

import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.util.ISO8601DateFormat
import com.fasterxml.jackson.datatype.joda.JodaModule
import org.joda.time.DateTime

def now = new DateTime()
def bean = new Bean(date1: now.toDate(), date2: now)

def objectMapper = new ObjectMapper()
        .registerModule(new JodaModule())
        .setDateFormat(new ISO8601DateFormat())

def json = objectMapper.writeValueAsString(bean)
println json



class Bean {
    Date date1
    DateTime date2
}

Ergebnis

{
  "date1": "2016-12-23T06:33:01Z",
  "date2": "2016-12-23T06:33:01.045Z"
}

Date1, was java.util.Date ist, hat keine Millisekunde. Es scheint, dass Sie es richtig mit "@ com.fasterxml.jackson.annotation.JsonFormat" formatieren müssen.

Bonus

def objectMapper = new ObjectMapper()
        .registerModule(new JodaModule())
//        .setDateFormat(new ISO8601DateFormat())
        .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)

Wenn Sie es im obigen Zustand versuchen, hat date1 auch eine Millisekunde. Der Zeitzonenspezifizierer wurde ebenfalls in "+ 0000" anstelle von "Z" geändert. ..

{
  "date1": "2016-12-23T06:38:26.270+0000",
  "date2": "2016-12-23T06:38:26.270Z"
}

Recommended Posts

Die Serialisierung von org.joda.time.DateTime zu JSON im ISO8601-Format erfolgt in Millisekunden
Formatieren Sie JSON mit org.json
Protokollausgabe im Json-Format mit lograge / lograge-sql mit RubyOnRails
Konvertieren Sie das Ruby-Objekt in das JSON-Format
Ersetzen Sie Text in der AutoShape of Excel-Datei durch Apache POI
Erste Schritte mit DBUnit
Die Serialisierung von org.joda.time.DateTime zu JSON im ISO8601-Format erfolgt in Millisekunden
Verwenden Sie thymeleaf3 mit parent, ohne Spring-Boot-Starter-Parent in Spring Boot anzugeben
Zip-Komprimierung, die in einer Java-Umgebung nicht beeinträchtigt wird
Wie Bean-Eigenschaften Anforderungsparameter im Listenstil in Spring binden
Spring Boot-Protokoll im JSON-Format ausgeben
Ausgabedatum in Java im erweiterten ISO 8601-Format
Behandeln Sie große JSON mit Java Lambda
So montieren Sie JSON direkt in Jackson
Konvertieren Sie mit Ruby von JSON nach TSV und von TSV nach JSON
Speichern von Objekten in PostgreSQL als JSON mit MyBatis (Mapper XML)
Jackson kann hibernateLazyInitializer in Spring Data nicht JSON serialisieren JPA führt zu einem Fehler