24

I am reading text and storing the dates as LocalDate variables.

Is there any way for me to preserve the formatting from DateTimeFormatter so that when I call the LocalDate variable it will still be in this format.

EDIT:I want the parsedDate to be stored in the correct format of 25/09/2016 rather than printing as a string

My code:

public static void main(String[] args) 
{
    LocalDate date = LocalDate.now();
    DateTimeFormatter formatters = DateTimeFormatter.ofPattern("d/MM/uuuu");
    String text = date.format(formatters);
    LocalDate parsedDate = LocalDate.parse(text, formatters);

    System.out.println("date: " + date); // date: 2016-09-25
    System.out.println("Text format " + text); // Text format 25/09/2016
    System.out.println("parsedDate: " + parsedDate); // parsedDate: 2016-09-25

    // I want the LocalDate parsedDate to be stored as 25/09/2016
}
4

4 に答える 4

39

編集:編集を考慮して、次のように、parsedDate を書式設定されたテキスト文字列に等しく設定するだけです。

parsedDate = text;

LocalDate オブジェクトは、ISO8601 形式 (yyyy-MM-dd) でのみ印刷できます。オブジェクトを他の形式で印刷するには、それをフォーマットし、LocalDate を独自の例で示したように文字列として保存する必要があります

DateTimeFormatter formatters = DateTimeFormatter.ofPattern("d/MM/uuuu");
String text = date.format(formatters);
于 2016-09-25T17:51:38.693 に答える
12

印刷中に日付をフォーマットするだけです:

public static void main(String[] args) {
    LocalDate date = LocalDate.now();
    DateTimeFormatter formatters = DateTimeFormatter.ofPattern("d/MM/uuuu");
    String text = date.format(formatters);
    LocalDate parsedDate = LocalDate.parse(text, formatters);

    System.out.println("date: " + date);
    System.out.println("Text format " + text);
    System.out.println("parsedDate: " + parsedDate.format(formatters));
}
于 2016-09-25T17:46:58.363 に答える
4

短い答え:いいえ。

長い答え: ALocalDateは年、月、日を表すオブジェクトであり、それらが含まれる 3 つのフィールドです。異なるロケールには異なる形式があり、実行したい操作LocalDate(日の加算または減算、時間の加算など) を実行するのがより困難になるため、形式はありません。

String 表現 ( によって生成されるtoString()) は、日付の印刷方法に関する国際標準です。別の形式が必要な場合DateTimeFormatterは、選択した を使用する必要があります。

于 2016-09-25T19:46:01.553 に答える