0

アクセス(MDB)データベースからいくつかの日付値を変換しようとしています。

「Tue May 17 08:29:00 BRT 2011」というメッセージが表示されます。しかし、私はこれが欲しい:「2011-05-17 08:29:00」。

JAVA 8 の新しい DateTime クラスを使用しようとしましたが、うまくいきませんでした。

これが私が試したものです:

public class DateHelper {

    LocalDateTime dateTime;

    public DateHelper(String dateTime) {
        this.convertStringToDateTimeDeclaration(dateTime);
    }

    protected void convertStringToDateTimeDeclaration(String dateTime){
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        this.dateTime = LocalDateTime.parse(dateTime, formatter);
    }

    public String getDateTime(){
        return dateTime.toString();
    }
}

しかし、私は得る

「スレッド「JavaFX アプリケーション スレッド」の例外 java.time.format.DateTimeParseException: テキスト 'Tue May 17 08:29:00 BRT 2011' はインデックス 0 で解析できませんでした」

4

1 に答える 1

1

@blm示唆したように:

次のように入力パターンを一致させるだけでした。

protected void convertStringToDateTimeDeclaration(String dateTime){
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy").;
        this.dateTime = LocalDateTime.parse(dateTime, formatter).withLocale(Locale.US);
    }

編集:

DateTimeParseException を回避するために、LocalDateTime メソッド チェーンの最後に「.withLocale(Locale.US)」を追加しました。

ありがとう!!!

于 2015-10-07T18:35:28.623 に答える