相关疑难解决方法(0)

Instant和LocalDateTime有什么区别?

我知道:

  • Instant是用于计算的"技术"时间戳表示(纳秒).
  • LocalDateTime是日期/时钟表示,包括人类的时区.

仍然最终IMO都可以作为大多数应用程序用例的类型.例如:目前我正在运行一个批处理作业,我需要根据日期计算下一次运行,我很难找到这两种类型之间的优缺点(除了Instant的纳秒级精度优势和时区部分) of LocalDateTime).

您能说出一些应用示例,其中只应使用Instant或LocalDateTime吗?

编辑:注意有关精度和时区的LocalDateTime的误读文档

java datetime java-8

205
推荐指数
5
解决办法
8万
查看次数

如何在Spring Boot Jackson Date序列化中应用默认时区

我已将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)

spring spring-mvc jackson spring-boot jackson2

17
推荐指数
4
解决办法
3万
查看次数

Jackson 序列化忽略时区

我使用以下代码序列化从外部服务获得的响应,并将 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)

java spring jackson spring-boot

5
推荐指数
1
解决办法
8594
查看次数

Java LocalDateTime和db之间的正确映射

我有一个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 postgresql spring jpa liquibase

2
推荐指数
1
解决办法
7098
查看次数