【问题标题】:Write to database a LocalDate field in specific format以特定格式将 LocalDate 字段写入数据库
【发布时间】:2018-05-04 11:43:19
【问题描述】:

我在将包含LocalDate 字段的Entity"dd-MM-yyyy" 格式写入Postgresql 时遇到问题

我的实体看起来像这样。

@Entity
public class DataUpload {

  @Id
  @NonNull
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long id;

  @NonNull
  @Column(nullable = false)
  private final String clinic;

  @NonNull
  @Column(nullable = false)
  @DateTimeFormat(pattern = "dd-MM-yyyy")
  private final LocalDate startDate;

  @NonNull
  @Column(nullable = false)
  @DateTimeFormat(pattern = "dd-MM-yyyy")
  private final LocalDate endDate;

  @NonNull
  @Column(nullable = false)
  private final long numRows;

  @NonNull
  @Column(nullable = false)
  @DateTimeFormat(pattern = "dd-MM-yyyy")
  private final LocalDate dateUploaded;

  @NonNull
  @Column(nullable = false)
  private final boolean processed;

  public DataUpload() {
    clinic = "SuperDuperClinic";
    startDate = LocalDate.of(2017, Month.JULY, 5);
    endDate = LocalDate.of(2018, Month.JULY, 5);
    numRows = 500;
    dateUploaded = LocalDate.now();
    processed = true;
  }
//getters setters
}

@DateTimeFormat 注解似乎没有作用,因为数据库中填写的列是这样的。

如何将LocalDate 对象格式化为特定模式,以便它可以完全按照我的意愿保存在数据库中?

【问题讨论】:

    标签: postgresql spring-boot spring-data-jpa


    【解决方案1】:

    我相信@DateTimeFormat 不会影响任何 DBMS 的日期表示。根据spring documentation

    @DateTimeFormat 声明字段或方法参数应格式化为 日期或时间

    因此,这意味着此注释允许您为 Web 输出动态格式化日期值,就像来自 Jackson 框架的 @JsonSerialize 一样。日期在 DBMS 管理器中的显示仅取决于数据库管理器中的设置,此外,数据库中的任何日期都保留为十进制值,每个数据库管理器仅通过其设置显示它们

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-26
      • 2015-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多