Java 格式化程序出现问题

Java 格式化程序出现问题,java,date,time,timezone,datetime-format,Java,Date,Time,Timezone,Datetime Format,我正在努力 new SimpleDateFormat("yyyy-mm-dd'T'hh:mm:ssZ").format(Calendar.getInstance().getTime()) 我得到的输出是2018-16-11T07:16:48+0530。但是预期的时间是2018-16-11T07:16:48+05:30。您必须使用XXX而不是Z作为时区,以获得您想要的格式: new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssXXX"); 参考: 您应该这样

我正在努力

new SimpleDateFormat("yyyy-mm-dd'T'hh:mm:ssZ").format(Calendar.getInstance().getTime()) 

我得到的输出是2018-16-11T07:16:48+0530。但是预期的时间是2018-16-11T07:16:48+05:30。

您必须使用XXX而不是Z作为时区,以获得您想要的格式:

new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssXXX");
参考:

您应该这样使用

new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");

您的日期格式字符串错误;使用MM几个月,而不是MM。我建议您避免使用SimpleDataFormat类。它不仅早已过时,而且还出了名的麻烦。今天我们的生活好多了。除此之外,您的问题与此相反:。您预计2018-16-11T07:16:48+05:30??那是什么意思?第16个月的第11天??看起来你真正想要的是ISO8601格式。我建议您可以使用OffsetDateTime.nowZoneId.ofAsia/Kolkata.toString替代您选择的时区。它给出了一个类似2018-09-12T12:50:11.265+05:30的字符串,即毫秒,甚至微秒,具体取决于平台支持什么。在大多数情况下,这不会造成问题。