我知道:
仍然最终IMO都可以作为大多数应用程序用例的类型.例如:目前我正在运行一个批处理作业,我需要根据日期计算下一次运行,我很难找到这两种类型之间的优缺点(除了Instant的纳秒级精度优势和时区部分) of LocalDateTime).
您能说出一些应用示例,其中只应使用Instant或LocalDateTime吗?
编辑:注意有关精度和时区的LocalDateTime的误读文档
我已将Spring Boot应用程序配置为将日期序列化为ISO8601字符串:
spring:
jackson:
serialization:
write-dates-as-timestamps: false
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
"someDate": "2017-09-11T07:53:27.000+0000"
Run Code Online (Sandbox Code Playgroud)
不过我的时区是欧洲/马德里.事实上,如果我打印TimeZone.getDefault()这是我得到的.
如何让杰克逊使用实际时区序列化这些日期时间值?GMT + 2
"someDate": "2017-09-11T09:53:27.000+0200"
Run Code Online (Sandbox Code Playgroud) 我使用以下代码序列化从外部服务获得的响应,并将 json 响应作为我的服务的一部分返回。但是,当外部服务返回时间值和时区 (10:30:00.000-05.00) 时,jackson 会将其转换为 15:30:00。如何忽略时区值?
public interface DateFormatMixin {
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="HH:mm:ss")
public XMLGregorianCalendar getStartTime();
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="HH:mm:ss")
public XMLGregorianCalendar getEndTime();
}
public ObjectMapper objectMapper() {
com.fasterxml.jackson.databind.ObjectMapper responseMapper = new com.fasterxml.jackson.databind.ObjectMapper();
responseMapper.addMixIn(Time.class, DateFormatMixin.class);
return responseMapper;
}
Run Code Online (Sandbox Code Playgroud) 我有一个spring-boot 1.2.1应用程序,使用Liquibase来管理我的数据库.我也使用Spring-data-jpa和hibernate.我有一张桌子:
<createTable tableName="ADDRESS">
<column name="address_id" type="bigint" autoIncrement="true">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="address_line1" type="varchar(500)"/>
<column name="address_line2" type="varchar(500)"/>
<column name="address_line3" type="varchar(500)"/>
<column name="city" type="varchar(500)"/>
<column name="state" type="varchar(50)"/>
<column name="zip" type="varchar(50)"/>
<column name="status" type="varchar(100)"/>
<column name="address_type" type="varchar(100)"/>
<column name="begin_date_time" type="DATETIME"/>
<column name="end_date_time" type="DATETIME"/>
</createTable>
Run Code Online (Sandbox Code Playgroud)
和一个实体:
@Entity
@Table(name = "ADDRESS")
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long addressId;
private String addressLine1;
private String addressLine2;
private String addressLine3;
private String city;
private String state;
private String zip;
@Enumerated(EnumType.STRING)
private Status …Run Code Online (Sandbox Code Playgroud) java ×3
spring ×3
jackson ×2
spring-boot ×2
datetime ×1
jackson2 ×1
java-8 ×1
jpa ×1
liquibase ×1
postgresql ×1
spring-mvc ×1