27 lines
970 B
Java
27 lines
970 B
Java
package net.gepafin.tendermanagement.util;
|
|
|
|
import com.fasterxml.jackson.core.JsonGenerator;
|
|
import com.fasterxml.jackson.databind.JsonSerializer;
|
|
import com.fasterxml.jackson.databind.SerializerProvider;
|
|
|
|
import java.io.IOException;
|
|
import java.time.LocalTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
public class DynamicLocalTimeSerializer extends JsonSerializer<LocalTime> {
|
|
private static final DateTimeFormatter HH_MM_FORMAT = DateTimeFormatter.ofPattern("HH:mm");
|
|
private static final DateTimeFormatter HH_MM_SS_FORMAT = DateTimeFormatter.ofPattern("HH:mm:ss");
|
|
|
|
@Override
|
|
public void serialize(LocalTime time, JsonGenerator gen, SerializerProvider serializers) throws IOException {
|
|
// Use HH:mm if seconds are 00, otherwise use HH:mm:ss
|
|
String formattedTime = (time.getSecond() == 0)
|
|
? time.format(HH_MM_FORMAT)
|
|
: time.format(HH_MM_SS_FORMAT);
|
|
|
|
gen.writeString(formattedTime);
|
|
}
|
|
|
|
|
|
}
|