在AWS Server上部署应用程序选择通用时间而不是本地时间

当前,我的AWS实例显示在时间以下

timedatectl status
            **Local time:** Thu 2019-12-26 19:41:51 IST
            Universal time: Thu 2019-12-26 14:11:51 UTC
            RTC time: Thu 2019-12-26 14:11:51
            Time zone: Asia/Kolkata (IST,+0530)
       System clock synchronized: yes
       systemd-timesyncd.service active: yes
       RTC in local TZ: no

Pojo

@Entity
@Table(name = "hotel_booking")
public class Booking implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    private Long id;

    @Id
    private Integer version;

    @NotNull
    @Column(name = "ota_reference_no",nullable = false)
    private String referenceNo;

    @Column(name = "guest_name")
    private String guestName;

    @Column(name = "created_date",columnDefinition = "timestamp",nullable = false)
    private LocalDateTime createdDate;

    @Column(name = "modified_date",columnDefinition = "timestamp")
    private LocalDateTime modifiedDate;

======

一旦持久创建,则提交日期为世界标准时间,但必需为本地时间

在localhost中获得相同的预期结果:

数据库使用: Postgres (即在AWS实例上本地安装)

huangfeng802 回答:在AWS Server上部署应用程序选择通用时间而不是本地时间

如果这是一个(或将成为)真实的应用程序,请帮个忙,并在UTC中始终始终保留时间轴上的任何实际点(或真实时刻),您实际上可以使用Instant类型在您的应用程序中直接实现此目的。您可以使用ZonedDateTime(或LocalDateTime,但这很棘手)来相应地“转换”值,然后再将其公开给用户代理程序或其他任何操作您可能这样做可能对时区敏感。

  

顺便说一句,获得Universal time而不是Local time的原因是因为Java虚拟机,应用程序,用于持久性(或组合)的框架是/默认情况下是这样设置的,或者是因为应用程序中某处存在这样的设置:-Duser.timezone=UTC。如果是应用程序,则可能是ZoneOffset.UTCTimeZone.setDefault(...),但是这些不太可能,因为您需要以编程方式进行此操作。执行System.out.println(ZoneId.systemDefault()),它将产生UTC(或类似的代码)。

本文链接:https://www.f2er.com/2857900.html

大家都在问