「DD MM」解析日付を使用する方法

エラーモデル

次のようにどのように日付を解析するために、この例のショーは、今年の場合に指定されていません。


package com.fun

import com.fun.frame.SourceCode

import java.time.LocalDate
import java.time.format.DateTimeFormatter

class TSSS extends SourceCode {

    public static void main(String[] args) {
        public static void main(String[] args) {

            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMM", Locale.CHINA);

            String date = "02 12";

            LocalDate localDate = LocalDate.parse(date, formatter);

            System.out.println(localDate);

            System.out.println(formatter.format(localDate));

        }

    }
}复制代码

輸出

INFO-> 当前用户:fv,IP:192.168.0.100,工作目录:/Users/fv/Documents/workspace/fun/,系统编码格式:UTF-8,系统Mac OS X版本:10.15.3
Exception in thread "main" java.time.format.DateTimeParseException: Text '02 Jan' could not be parsed at index 3
    at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1947)
    at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1849)
    at java.time.LocalDate.parse(LocalDate.java:400)
    at java_time_LocalDate$parse.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:135)
    at com.fun.TSSS.main(TSSS.groovy:16)

Process finished with exit code 1复制代码

正解

モードはdd MMM十分ではありません。私たちがする必要があるDateTimeFormatterBuilder日付の解析にデフォルトの年間提供しています。


package com.fun

import com.fun.frame.SourceCode

import java.time.LocalDate
import java.time.format.DateTimeFormatter
import java.time.format.DateTimeFormatterBuilder
import java.time.temporal.ChronoField

class TSSS extends SourceCode {

    public static void main(String[] args) {

        DateTimeFormatter formatter = new DateTimeFormatterBuilder()
                .appendPattern("dd MM")
                .parseDefaulting(ChronoField.YEAR, 2020)
                .toFormatter(Locale.CHINA);

        String date = "02 11";

        LocalDate localDate = LocalDate.parse(date, formatter);

        System.out.println(localDate);

        System.out.println(formatter.format(localDate));

    }
}复制代码

輸出

INFO-> 当前用户:fv,IP:192.168.0.100,工作目录:/Users/fv/Documents/workspace/fun/,系统编码格式:UTF-8,系统Mac OS X版本:10.15.3
2020-11-02
02 11

Process finished with exit code 0复制代码

  • 厳粛に宣言:最初の公開番号「FunTester」に登場した記事、(テンセントクラウドを除く)第三者再生を禁止し、公開します。

技術関連記事

非技術的な選択された記事

おすすめ

転載: juejin.im/post/5e5723b4518825495f4545ca