Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jackson如何设置JSON解析的时区?_Java_Json_Parsing_Jackson - Fatal编程技术网

Java Jackson如何设置JSON解析的时区?

Java Jackson如何设置JSON解析的时区?,java,json,parsing,jackson,Java,Json,Parsing,Jackson,我在这里感到有点失落。我用以下格式解析“日期”: @JsonProperty("earliest_pick_up_time") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm", timezone = "Europe/Berlin") private Date earliestPickUpTime; 但这并不是一个真正的日期,因为来源是一小时和一分钟,比如14:43或16:12等等 这里的时区是什么?什么的时区?服务器

我在这里感到有点失落。我用以下格式解析“日期”:

@JsonProperty("earliest_pick_up_time")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm", timezone = "Europe/Berlin")
private Date earliestPickUpTime;
但这并不是一个真正的日期,因为来源是一小时和一分钟,比如14:43或16:12等等

这里的时区是什么?什么的时区?服务器?这个装置?我是否需要计算设备的位置,以便始终正确显示?14:43是14:43,无论在这种情况下用户是在柏林还是在澳大利亚。我需要知道服务器的位置吗

用户将此时间和日期设置得更早,那么时区是否引用该时间和日期


如果我没有明确设置时区,我会得到错误的日期。现在我将时区设置为我的时区,但我不确定这是否正确。

服务器的时区和客户端的时区可能不同。我会将服务器的默认时区设置为UTC。 随着时间的推移,我会强制客户机在每个请求中发送时区信息(可能作为请求参数或报头)。在服务器中,我会将其解析为UTC,并将其作为时间戳保存在db中。 从db检索时,它将是UTC。我会再次转换到客户的时区并将其发回


所以,理想情况下,只要设置服务器的默认时区,服务器的位置就无关紧要。您可以直接在服务器中设置,也可以在启动时在应用程序中设置。然而,客户的位置确实很重要。您可能希望向他们显示自己时区中的时间。不要手动添加时区偏移。使用内置框架处理日光节约等问题。

日期可能不是一个好对象,因为您必须解析HH:mm

日期表示UTC 1970年1月1日之后的某个时间实例。从0点到23点只有一个小时,你不能代表这一点

您可能应该考虑创建一个定制的hourmite对象和一个定制的反序列化器/序列化器

您还可以将时区作为某种补偿加以考虑

如果我在柏林,我把最早的接送时间设置为1点怎么办


纽约的时间是上午5点吗?

谢谢,我实际上使用了一个字符串,并在以后创建了日期