4

我正在使用 flex String Sat Aug 4 13:10:00 GMT+0530 2012,所以在我的 Java 程序中,我正在像这样转换

try {
    String str_date = "Sat Aug 4 13:10:00 GMT+0530 2012";

    DateFormat formatter = new SimpleDateFormat(
            "EEE MMM dd HH:mm:ss zzzz yyyy");
    Date date = (Date) formatter.parse(str_date);
    System.out.println(date);
} catch (ParseException e) {
    System.out.println("Exception :" + e);
}

但它给了

`Exception :java.text.ParseException: Unparseable date: "Sat Aug 4 13:10:00 GMT+0530 2012"`
4

2 回答 2

1

@Florent 的回答很好,但是自从写了 Java 之后,它就获得了新的日期/时间包。这是在 Java 8 及更高版本中执行此操作的一种方法:

import java.time.format.DateTimeFormatter;
import java.time.LocalDateTime;

// ...

String input = "Sat Aug 4 13:10:00 GMT+0530 2012";

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss 'GMT'Z yyyy");
LocalDateTime dateTime = LocalDateTime.parse(input, formatter);

然后该dateTime对象可用于日期/时间计算,或使用其他格式化程序呈现为字符串,或您需要执行的任何操作。

于 2020-03-24T08:14:39.223 回答
0

此格式化程序有效:

DateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss 'GMT'Z yyyy");
于 2012-08-03T12:12:19.093 回答