Json对象:将日期作为字符串是一种不好的做法?

时间:2018-05-19 15:19:35

标签: spring-mvc spring-boot jackson

我有以下json对象:

public class User {
   private String name;
   @JsonFormat(pattern="dd-MM-yyyy")
   private Date birthdate;
}

但我想把它改成:

private String birthdate; //mmm...now need to make sure the format is respected..

问题是该对象必须保存在DB内部然后检索。 假设我有一个用户在CEST时间,而我的应用程序的时间是UTC,所以落后2个小时。

他们发送“15-04-1990”(时间是隐含的00:00:00),然后系统将此日期解释为“14-04-1990”(时间是隐含的10:00:00 PM)两小时的差异。 当他们再次检索信息时,他们会看到14-04-1990!

好的,我可以将发件人的时区添加到请求中。但我不喜欢它:在应用程序所在的国家/地区想要检查一些信息(例如帮助台操作员):他们仍然会在错误的时区看到日期!

那么,你认为接收日期为字符串有什么问题吗? 如果可以,那么如何确保字符串包含格式为“dd-mm-yyyy”的日期?

1 个答案:

答案 0 :(得分:0)

其中一件事可能是将日期和时间对象保存为GMT的时间戳,然后根据该时区更改每个时区。