java UTC时间将自动添加到my date变量中
这是我的json格式:
"date": "2020-01-01T00:00:00.000Z"
然而,在java中,我收到的日期是Wed Jan 01 05:30:00 IST 2020
以下是我的DTO代码
public class DateTimeDto {
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXX")
private Date date;
}
我正在使用dateTimeDto.getDate()
接收以JSON格式发送的日期
我如何只获取日期而不添加UTC
# 1 楼答案
日期时间值没有JSON格式
“日期”:“2020-01-01T00:00:00.000Z”
末尾的
Z
表示该日期和时间被视为UTC,偏移量为0小时分秒。此文本的格式在ISO 8601中定义解析一个an^{} 。永远不要使用
Date
。只使用java。时间课程由于采用ISO 8601标准格式,因此无需指定格式模式
因此,将那个时刻调整到另一个时区,应用
ZoneId
知道日期时间对象没有“格式”。您可以生成/解析各种格式的字符串,但日期时间对象是独立的
如果您指的是没有时间的日期部分,则可以在调整到要解释日期的时区后提取
LocalDate
。请记住,在任何给定的时刻,全球各地的日期都因区域而异没有“添加”UTC。原始值表示UTC中的某个时刻。我们知道这是因为
Z
表示UTC,发音为“Zulu”在查询中使用智能对象而不仅仅是字符串作为参数。Hibernate和JDBC4.2允许您交换java。数据库中的时间对象
永远不要使用这种糟糕的格式来通过文本交换日期时间值。该格式假定为英语,很难用机器解析,使用2-4个字符的伪时区,如
IST
,这不是标准化的,也不是唯一的(爱尔兰标准时间?印度标准时间?)有关详细信息,请搜索堆栈溢出。所有这些都已经被讨论过很多次了。发布前进行搜索和研究