如何使用带有flex的java格式化时间?

时间:2012-08-03 11:57:54

标签: java flex

我正在使用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"`

2 个答案:

答案 0 :(得分: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对象可用于日期/时间计算,或者使用其他格式化程序或您需要执行的任何操作将其呈现为字符串。

答案 1 :(得分:0)

此格式化程序有效:

DateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss 'GMT'Z yyyy");