4

私はフレックス文字列を取得している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 以降でそれを行う 1 つの方法です。

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 に答える