Created
August 9, 2018 04:45
-
-
Save circlee/6c772cafd306c000307d3cc29e644bb2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import lombok.AllArgsConstructor; | |
import lombok.Data; | |
@AllArgsConstructor | |
public @Data class LocalDateTest { | |
public String name = ""; | |
public LocalDateTimeYMD timeYmd; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.time.LocalDateTime; | |
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; | |
import com.fasterxml.jackson.databind.annotation.JsonSerialize; | |
import lombok.experimental.Delegate; | |
@JsonSerialize(using = LocalDateTimeYMDSerializer.class) | |
@JsonDeserialize(using = LocalDateTimeYMDDeSerializer.class) | |
public class LocalDateTimeYMD { | |
@Delegate LocalDateTime date; | |
public LocalDateTimeYMD(LocalDateTime dateTime){ | |
this.date = dateTime; | |
} | |
public LocalDateTime getDate(){ | |
return this.date; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.io.IOException; | |
import java.time.LocalDateTime; | |
import java.time.format.DateTimeFormatter; | |
import com.fasterxml.jackson.core.JsonParser; | |
import com.fasterxml.jackson.core.JsonProcessingException; | |
import com.fasterxml.jackson.databind.DeserializationContext; | |
import com.fasterxml.jackson.databind.JsonDeserializer; | |
public class LocalDateTimeYMDDeSerializer extends JsonDeserializer<LocalDateTimeYMD> { | |
@Override | |
public LocalDateTimeYMD deserialize(JsonParser p, | |
DeserializationContext ctxt) | |
throws IOException, JsonProcessingException { | |
String text = p.getText(); | |
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); | |
return new LocalDateTimeYMD(LocalDateTime.parse(text, formatter)); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.io.IOException; | |
import java.time.format.DateTimeFormatter; | |
import com.fasterxml.jackson.core.JsonGenerator; | |
import com.fasterxml.jackson.core.JsonProcessingException; | |
import com.fasterxml.jackson.databind.JsonSerializer; | |
import com.fasterxml.jackson.databind.SerializerProvider; | |
public class LocalDateTimeYMDSerializer extends JsonSerializer<LocalDateTimeYMD> { | |
@Override | |
public void serialize(LocalDateTimeYMD value, JsonGenerator gen, | |
SerializerProvider serializers) | |
throws IOException, JsonProcessingException { | |
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); | |
gen.writeString(value.getDate().format(formatter)); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Test { | |
public static void main(String ... args) throws IOException { | |
ObjectMapper om = new ObjectMapper(); | |
LocalDateTimeYMD localDateYmd = new LocalDateTimeYMD(LocalDateTime.now()); | |
// java object | |
LocalDateTest localDateTest1 = new LocalDateTest("test", localDateYmd); | |
// serialized json str | |
String serializedJsonStr = om.writeValueAsString(localDateTest1); | |
System.out.println(serializedJsonStr); | |
// deserialized java object | |
LocalDateTest localDateTest2 = om.readValue(serializedJsonStr, LocalDateTest.class); | |
System.out.println(localDateTest1.getTimeYmd().getDate()); | |
System.out.println(localDateTest2.getTimeYmd().getDate()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment