我通过API在Timestamp
(java.sql)对象中接收一个Timestamp,经过一些其他验证后,我将以包含相同时间戳值的JSON形式发送响应,但每次发送和接收的格式都不相同。
例如,如果我的JSON输入有这个值:
案例一:
"interval_time": "2022-01-26T12:00:00.511+05:30"
回复:
{
"message": "Already contains result for timestamp : 2022-01-26 12:00:00.511",
"httpcode": 409,
"documentationLink": "",
"status": "ERROR"
}
请注意,缺少T
和偏移值05:30。
案例二:
"interval_end_time": "2022-01-26T12:00:00.511Z"
回复:
{
"message": "Already contains result for timestamp : 2022-01-26 17:30:00.511",
"httpcode": 409,
"documentationLink": "",
"status": "ERROR"
}
请注意,缺少的T
和偏移值被添加到时间戳中。
我需要一个一致的响应,它应该是什么是作为一个输入发送。在时区或偏移量没有变化。
对于用例1,响应应该是这样的:
回复:
{
"message": "Already contains result for timestamp : 2022-01-26T12:00:00.511+05:30",
"httpcode": 409,
"documentationLink": "",
"status": "ERROR"
}
对于情况2,应该是这样的:
回复:
{
"message": "Already contains result for timestamp : 2022-01-26T12:00:00.511Z",
"httpcode": 409,
"documentationLink": "",
"status": "ERROR"
}
注:团队遵循ISO 8601标准。
1条答案
按热度按时间piv4azn71#
我通过Timestamp(java.sql)对象中的API接收Timestamp
不你不是
您正在接收JSON文本,其中包含以标准ISO 8601表示时刻的字符串。
将字符串解析为
java.time.OffsetDateTime
类。避免使用遗留的有严重缺陷的日期-时间类,如
java.sql.Timestamp
,只使用它们的替代品,java.time 类。要生成ISO 8601格式的文本,只需调用
OffsetDateTime#toString
。我使用Gson将其解析为具有Timestamp数据成员的Java类。
别说了
只使用 java.time 类。