Java 日期格式时间戳

Java Date format timestamp

我正在尝试使用 .

转换日期和时间戳
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();
        }
}

输出:

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 05 20:52:38 EDT 2020

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

您的格式化程序声明有误。

您配置的内容:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ");

满足您的预期结果应该是什么:

DateFormat df = new SimpleDateFormat("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