3

我必须解析以下日期

2016 年 9 月 30 日星期五 18:31:00 GMT+04:00

它不适用于以下模式:

new SimpleDateFormat("EEE MMM dd HH:mm:ss z YYYY", Locale.ENGLISH);

我得到以下日期作为输出:Fri Jan 01 18:31:00 GMT+04:00 2016。

你能告诉我我做错了什么吗?

4

3 回答 3

3

它应该是小写的“y”:

EEE MMM dd HH:mm:ss z yyyy

大写“Y”表示weekBasedYear

可以从基于周的年、年中的周和周中的日创建日期

我猜混合基于周和绝对/时代的模式对于解析来说效果不佳。

于 2016-09-30T06:47:21.607 回答
2
于 2021-02-13T21:37:50.537 回答
-1

下面的代码工作正常

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class ParseDate {


public static void main(String[] args) {
    try {
        SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
        Date date = parserSDF.parse("Fri Sep 30 18:31:00 GMT+04:00 2016");
        System.out.println("date: " + date.toString());
    } catch (ParseException ex) {
        ex.printStackTrace();
    }
}
}
于 2016-09-30T06:51:55.293 回答