package com.example.restservice.util;
import com.example.restservice.pojo.Animal;
import com.example.restservice.pojo.AnimalCC;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.*;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) throws JsonProcessingException, ParseException {
ObjectMapper objectMapper = new ObjectMapper();
JavaTimeModule javaTimeModule = new JavaTimeModule();
javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
javaTimeModule.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern("HH:mm:ss")));
objectMapper.registerModule(javaTimeModule);
Animal animal = new Animal();
animal.setAge(3);
animal.setName("小狗");
animal.setBirthday(new Date());
System.out.println(animal);
String s = objectMapper.writeValueAsString(animal);
System.out.println(s);
System.out.println("=====================================");
System.out.println(animal.getBirthday());
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd-HH:mm:ss.SSS");
System.out.println(dateTimeFormatter.format(LocalDateTime.now()));
String dateTime1 = "2021-01-01T12:12:12.123+08:00";
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS+08:00");
Animal animal1 = new Animal();
animal1.setAge(3);
animal1.setName("小狗");
animal1.setBirthday(simpleDateFormat2.parse(dateTime1));
System.out.println(simpleDateFormat2.format(new Date()));
System.out.println(animal);
String s8 = objectMapper.writeValueAsString(animal);
System.out.println(s8);
System.out.println("=====================================");
AnimalCC animalCC = new AnimalCC();
animalCC.setAge(3);
animalCC.setName("小狗");
animalCC.setBirthday(DateUtil.date2LocalDateTime(new Date()));
animalCC.setLocalDate(LocalDateTime.now().toLocalDate());
animalCC.setLocalTime(LocalDateTime.now().toLocalTime());
System.out.println(animalCC);
String s2 = objectMapper.writeValueAsString(animalCC);
System.out.println(s2);
System.out.println("=====================================");
String dateTime = "2021-01-01T12:12:12";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date date = simpleDateFormat.parse(dateTime);
String s3 = simpleDateFormat.format(date);
System.out.println(date);
System.out.println(s3);
String s1 = objectMapper.writeValueAsString(date);
System.out.println(s1);
Date from = Date.from(DateUtil.stringToLocalDateTime(dateTime).atZone(ZoneId.systemDefault()).toInstant());
System.out.println(from);
LocalDateTime localDateTime = DateUtil.stringToLocalDateTime(dateTime);
System.out.println(localDateTime);
System.out.println("**********************************************");
System.out.println(DateUtil.format3(LocalDateTime.now(), "yyyy-MM-dd HH:mm:ss"));
System.out.println(DateUtil.format2(new Date(), "yyyy-MM-dd HH:mm:ss.SSS+08:00"));
System.out.println("**********************************************");
String animalStr = "{\"name\":\"小狗\",\"age\":3,\"birthday\":\"2021-01-01T12:12:12\"}";
String animalStr2 = "{\"name\":\"小狗\",\"age\":3,\"birthday\":\"2021-01-01T12:12:12\",\"localDate\":\"2021-01-01\",\"localTime\":\"12:12:12.333\"}";
Animal animal2 = objectMapper.readValue(animalStr, Animal.class);
AnimalCC animalCC2 = objectMapper.readValue(animalStr2, AnimalCC.class);
System.out.println(animal2);
System.out.println(animalCC2);
}
}