Java日期格式时间戳

Java日期格式时间戳,java,simpledateformat,date-formatting,Java,Simpledateformat,Date Formatting,我正在尝试使用转换日期和时间戳 public static void main(String args[]) { list.add("2020-04-06T00:52:38+0000"); list.add("2020-04-06T24:52:38+0000"); list.add("2020-04-06T12:52:38+0000"); Date createdTime = null; DateFormat df = new S

我正在尝试使用转换日期和时间戳

public static void main(String args[]) {
list.add("2020-04-06T00:52:38+0000");
        list.add("2020-04-06T24:52:38+0000");
        list.add("2020-04-06T12:52:38+0000");

        Date createdTime = null;
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ");
        try {
             for (i =0; i < list.size(); i++) {
                    createdTime = df.parse(list.get(i));
                    System.out.print(i + " : "  + "Media Created_on : " + createdTime + "\n"); 
             }
        } catch (ParseException e) {
            e.printStackTrace();
        }
}

在这里,它从IST转换为EDT,提前4小时。那么对于最后一次迭代,为什么12个小时的时间相差13个小时呢

格式化程序声明中有错误

您已配置的内容:

DateFormat df=新的简化格式(“yyyy-MM-dd'T'hh:MM:ssZ”)

为达到您的预期结果,应采取以下措施:

DateFormat df=新的简化格式(“yyyy-MM-dd'T'HH:MM:ssZ”);
请注意,小时应该是HH而不是HH

那么结果将是:

0 : Media Created_on : Sun Apr 05 20:52:38 EDT 2020
1 : Media Created_on : Mon Apr 06 20:52:38 EDT 2020
2 : Media Created_on : Sun Apr 06 08:52:38 EDT 2020

什么时候是24:52:38?您使用的是a吗?在上述问题的最后一句中,我想您的意思是“UTC到EDT”,相差4小时。我建议您不要使用
日期
日期格式
简化格式
。这些类的设计很糟糕,而且早已过时,尤其是后两个类的设计非常麻烦。而是使用
OffsetDateTime
DateTimeFormatter
,两者都来自。
0 : Media Created_on : Sun Apr 05 20:52:38 EDT 2020
1 : Media Created_on : Mon Apr 06 20:52:38 EDT 2020
2 : Media Created_on : Sun Apr 06 08:52:38 EDT 2020