问题:Instant时间格式接收 date,字符串yyyy-MM-dd HH-mm-ss,时区是+8区2019-12-16T16:00:00.000Z格式的数据
1.使用的全局Jackson:添加buikd.gradle
implementation "com.fasterxml.jackson.datatype:jackson-datatype-hppc"
implementation "com.fasterxml.jackson.datatype:jackson-datatype-jsr310"
//implementation "com.fasterxml.jackson.datatype:jackson-datatype-hibernate5"
implementation "com.fasterxml.jackson.core:jackson-annotations"
implementation "com.fasterxml.jackson.core:jackson-databind"
implementation "com.fasterxml.jackson.module:jackson-module-afterburner"
2添加config
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.module.afterburner.AfterburnerModule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.zalando.problem.ProblemModule;
import org.zalando.problem.violations.ConstraintViolationProblemModule;
@Configuration
public class JacksonConfiguration {
/**
* Support for Java date and time API.
* @return the corresponding Jackson module.
*/
@Bean
public JavaTimeModule javaTimeModule() {
return new JavaTimeModule();
}
//支持jdk8的时间格式
@Bean
public Jdk8Module jdk8TimeModule() {
return new Jdk8Module();
}
/*
* Support for Hibernate types in Jackson.
*/
// @Bean
// public Hibernate5Module hibernate5Module() {
// return new Hibernate5Module();
// }
@Bean
public AfterburnerModule afterburnerModule() {
return new AfterburnerModule();
}
/*
* Module for serialization/deserialization of RFC7807 Problem.
*/
@Bean
ProblemModule problemModule() {
return new ProblemModule();
}
/*
* Module for serialization/deserialization of ConstraintViolationProblem.
*/
@Bean
ConstraintViolationProblemModule constraintViolationProblemModule() {
return new ConstraintViolationProblemModule();
}
一顿测试  ̄□ ̄ 。。。。
结果:Instant能接收时区是+8区2019-12-16T16:00:00.000Z格式数据,string类型可以接收所有
data类型只测试不能接收时区异常。可能我自己配置有问题吧!!!
解决Instant缺失8小时问题:增加8个小时,或者mysql使用上海时区serverTimezone=Asia/Shanghai
mysqlurl:xxxx?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
Instant now = Instant.now().plusMillis(TimeUnit.HOURS.toMillis(8));
控制台输出:2018-07-09T16:58:48.188Z
}