【发布时间】:2018-10-29 19:23:26
【问题描述】:
我有以下 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..
问题是这个对象必须保存在数据库中,然后再检索。 假设我有一个用户在 CEST 时间,而我的应用程序的时间是 UTC,所以落后了 2 小时。
他们发送“15-04-1990”(时间隐含为 00:00:00),然后系统将此日期解释为“14-04-1990”(时间隐含为 10:00:00 PM),因为2小时的差异。 当他们再次检索信息时,他们将看到 14-04-1990!
好的,我可以将发件人的时区添加到请求中。但我不喜欢这样:让居住在应用程序所在国家/地区的第 3 方想要检查一些信息(例如帮助台操作员):他们仍然会在错误的时区看到日期!
那么,您认为将日期作为字符串接收有什么问题吗? 如果可以的话,如何确保字符串包含格式为“dd-mm-yyyy”的日期?
【问题讨论】:
-
我通常会将所有内容以 UTC 格式存储在后端,然后在客户端根据他们的时区/语言环境进行调整。
-
问题是我们不是在谈论时间戳,这里我只想存储生日。用户会看到前一天...
-
您是否要从 GMT 获取客户时区偏移?这篇文章向您展示了如何在 Java 中做到这两种方式。 stackoverflow.com/questions/16525617/…
标签: spring-mvc spring-boot jackson