Skip to content

Commit 713552c

Browse files
committed
Add Jackson date test
1 parent eedcbeb commit 713552c

13 files changed

Lines changed: 396 additions & 1 deletion

File tree

jackson/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@
4545
<version>${jackson.version}</version>
4646
</dependency>
4747

48+
<dependency>
49+
<groupId>joda-time</groupId>
50+
<artifactId>joda-time</artifactId>
51+
<version>2.6</version>
52+
</dependency>
53+
4854
<dependency>
4955
<groupId>com.google.code.gson</groupId>
5056
<artifactId>gson</artifactId>
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package org.baeldung.jackson.date;
2+
3+
import java.io.IOException;
4+
import java.text.ParseException;
5+
import java.text.SimpleDateFormat;
6+
import java.util.Date;
7+
8+
import com.fasterxml.jackson.core.JsonParser;
9+
import com.fasterxml.jackson.core.JsonProcessingException;
10+
import com.fasterxml.jackson.databind.DeserializationContext;
11+
import com.fasterxml.jackson.databind.JsonDeserializer;
12+
13+
public class CustomDateDeserializer extends JsonDeserializer<Date> {
14+
15+
private static SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
16+
17+
@Override
18+
public Date deserialize(final JsonParser jsonparser, final DeserializationContext context) throws IOException, JsonProcessingException {
19+
final String date = jsonparser.getText();
20+
try {
21+
return formatter.parse(date);
22+
} catch (final ParseException e) {
23+
throw new RuntimeException(e);
24+
}
25+
}
26+
27+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.baeldung.jackson.date;
2+
3+
import java.io.IOException;
4+
import java.text.SimpleDateFormat;
5+
import java.util.Date;
6+
7+
import com.fasterxml.jackson.core.JsonGenerator;
8+
import com.fasterxml.jackson.core.JsonProcessingException;
9+
import com.fasterxml.jackson.databind.JsonSerializer;
10+
import com.fasterxml.jackson.databind.SerializerProvider;
11+
12+
public class CustomDateSerializer extends JsonSerializer<Date> {
13+
14+
private static SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
15+
16+
@Override
17+
public void serialize(final Date value, final JsonGenerator gen, final SerializerProvider arg2) throws IOException, JsonProcessingException {
18+
gen.writeString(formatter.format(value));
19+
}
20+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.baeldung.jackson.date;
2+
3+
import java.io.IOException;
4+
5+
import org.joda.time.DateTime;
6+
import org.joda.time.format.DateTimeFormat;
7+
import org.joda.time.format.DateTimeFormatter;
8+
9+
import com.fasterxml.jackson.core.JsonGenerator;
10+
import com.fasterxml.jackson.core.JsonProcessingException;
11+
import com.fasterxml.jackson.databind.JsonSerializer;
12+
import com.fasterxml.jackson.databind.SerializerProvider;
13+
14+
public class CustomDateTimeSerializer extends JsonSerializer<DateTime> {
15+
16+
private static DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm");
17+
18+
@Override
19+
public void serialize(final DateTime value, final JsonGenerator gen, final SerializerProvider arg2) throws IOException, JsonProcessingException {
20+
gen.writeString(formatter.print(value));
21+
}
22+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.baeldung.jackson.date;
2+
3+
import java.io.IOException;
4+
import java.time.LocalDateTime;
5+
import java.time.format.DateTimeFormatter;
6+
7+
import com.fasterxml.jackson.core.JsonGenerator;
8+
import com.fasterxml.jackson.core.JsonProcessingException;
9+
import com.fasterxml.jackson.databind.JsonSerializer;
10+
import com.fasterxml.jackson.databind.SerializerProvider;
11+
12+
public class CustomLocalDateTimeSerializer extends JsonSerializer<LocalDateTime> {
13+
14+
private static DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
15+
16+
@Override
17+
public void serialize(final LocalDateTime value, final JsonGenerator gen, final SerializerProvider arg2) throws IOException, JsonProcessingException {
18+
gen.writeString(formatter.format(value));
19+
}
20+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package org.baeldung.jackson.date;
2+
3+
import java.util.Date;
4+
5+
public class Event {
6+
public String name;
7+
public Date eventDate;
8+
9+
public Event() {
10+
super();
11+
}
12+
13+
public Event(final String name, final Date eventDate) {
14+
this.name = name;
15+
this.eventDate = eventDate;
16+
}
17+
18+
public Date getEventDate() {
19+
return eventDate;
20+
}
21+
22+
public String getName() {
23+
return name;
24+
}
25+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.baeldung.jackson.date;
2+
3+
import java.util.Date;
4+
5+
import com.fasterxml.jackson.annotation.JsonFormat;
6+
7+
public class EventWithFormat {
8+
public String name;
9+
10+
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy hh:mm:ss")
11+
public Date eventDate;
12+
13+
public EventWithFormat() {
14+
super();
15+
}
16+
17+
public EventWithFormat(final String name, final Date eventDate) {
18+
this.name = name;
19+
this.eventDate = eventDate;
20+
}
21+
22+
public Date getEventDate() {
23+
return eventDate;
24+
}
25+
26+
public String getName() {
27+
return name;
28+
}
29+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.baeldung.jackson.date;
2+
3+
import org.joda.time.DateTime;
4+
5+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
6+
7+
public class EventWithJodaTime {
8+
public String name;
9+
10+
@JsonSerialize(using = CustomDateTimeSerializer.class)
11+
public DateTime eventDate;
12+
13+
public EventWithJodaTime() {
14+
super();
15+
}
16+
17+
public EventWithJodaTime(final String name, final DateTime eventDate) {
18+
this.name = name;
19+
this.eventDate = eventDate;
20+
}
21+
22+
public DateTime getEventDate() {
23+
return eventDate;
24+
}
25+
26+
public String getName() {
27+
return name;
28+
}
29+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.baeldung.jackson.date;
2+
3+
import java.time.LocalDateTime;
4+
5+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
6+
7+
public class EventWithLocalDateTime {
8+
public String name;
9+
10+
@JsonSerialize(using = CustomLocalDateTimeSerializer.class)
11+
public LocalDateTime eventDate;
12+
13+
public EventWithLocalDateTime() {
14+
super();
15+
}
16+
17+
public EventWithLocalDateTime(final String name, final LocalDateTime eventDate) {
18+
this.name = name;
19+
this.eventDate = eventDate;
20+
}
21+
22+
public LocalDateTime getEventDate() {
23+
return eventDate;
24+
}
25+
26+
public String getName() {
27+
return name;
28+
}
29+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package org.baeldung.jackson.date;
2+
3+
import java.util.Date;
4+
5+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
6+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
7+
8+
public class EventWithSerializer {
9+
public String name;
10+
11+
@JsonDeserialize(using = CustomDateDeserializer.class)
12+
@JsonSerialize(using = CustomDateSerializer.class)
13+
public Date eventDate;
14+
15+
public EventWithSerializer() {
16+
super();
17+
}
18+
19+
public EventWithSerializer(final String name, final Date eventDate) {
20+
this.name = name;
21+
this.eventDate = eventDate;
22+
}
23+
24+
public Date getEventDate() {
25+
return eventDate;
26+
}
27+
28+
public String getName() {
29+
return name;
30+
}
31+
}

0 commit comments

Comments
 (0)