Java 通过Unirest POST getting从字符串发送日期格式的数据-输入无效
我向服务器发送一些延迟日期的请求。POST请求如下所示:Java 通过Unirest POST getting从字符串发送日期格式的数据-输入无效,java,http,server,response,unirest,Java,Http,Server,Response,Unirest,我向服务器发送一些延迟日期的请求。POST请求如下所示: { "text":"texst", "deferred_date":"2019-09-14 14:00" } 我通过邮递员或Java中的Unirest发送,并且有一个201可接受的结果。 服务器以“2019-09-14T14:00:00+03:00”格式存储此日期值 因为我用Java修改了日期,所以最终的数据存储在一个字符串中 YYYY-MM-dd hh:MM格式 我最初的Unirest帖子有下一个主体结构: .bo
{
"text":"texst",
"deferred_date":"2019-09-14 14:00"
}
我通过邮递员或Java中的Unirest发送,并且有一个201可接受的结果。
服务器以“2019-09-14T14:00:00+03:00”格式存储此日期值
因为我用Java修改了日期,所以最终的数据存储在一个字符串中
YYYY-MM-dd hh:MM格式
我最初的Unirest帖子有下一个主体结构:
.body("{\"text\":\"...\",\"deferred_date\":\"2019-09-14 06:03\"}")
它工作正常,但如果我在帖子中使用我的延迟时间字符串:
.body("{\"text\":\"...\",\"deferred_date\":\"" + deferredTime + "\"}")
我收到一个400错误请求错误
{
"userMessage":"Invalid input.",
"errorCode":"invalid",
"fields":{
"deferred_date":[
"Posting date Date has wrong format. Use one of these formats instead: YYYY-MM-DDThh:mm[:ss[.uuuuuu]][+HH:MM|-HH:MM|Z]."
]
},
"internalMessage":"Invalid input."
}
我不明白如果deferredTime字符串变量保持与我以前使用的相同的“YYYY-MM-dd hh:MM”值,为什么它不起作用。
有什么建议吗?根据Ole V.V答案,我使用LocalDateTime字符串将我的日期存储在“2018-09-16T10:41:48.619”格式中,而不是SimpleDateFormat,它将日期存储在“2018-09-16 10:41”格式中。现在,用正确的格式,我收到一个201接受的结果打印
延迟时间
,并检查其格式是否与前一个相同one@MaruthiAdithya当然,我这样做了,并且以所需的格式正确打印了。错误表明服务器希望日期为ISO8601格式
尝试此DateFormat DateFormat=new SimpleDateFormat(“YYYY-MM-dd'HH:MM”)
我建议您避免使用SimpleDataFormat
类。它不仅过时很久,而且是出了名的麻烦。今天我们有了更好的。您的格式模式字符串中有几个大小写错误,您需要小写yyy
和大写HH
,但我看不出单独使用它会有什么后果se错误请求错误。@OleV.V.LocalDateTime字符串以“2018-09-16T10:41:48.619”格式存储我的日期,而不是以“2018-09-16 10:41”格式存储日期的SimpleDataFormat。现在,如果格式正确,我将收到一个201接受的结果
{
"userMessage":"Invalid input.",
"errorCode":"invalid",
"fields":{
"deferred_date":[
"Posting date Date has wrong format. Use one of these formats instead: YYYY-MM-DDThh:mm[:ss[.uuuuuu]][+HH:MM|-HH:MM|Z]."
]
},
"internalMessage":"Invalid input."
}