簡體   English   中英

Java Localize DateFormat無法將給定對象格式化為日期

[英]Java Localize DateFormat Cannot format given Object as a Date

我希望獲得本地化的日期字符串。 為此,我正在做:

String dateString = "2019-06-01 00:15:00";
dateString = dateString.replace(" ", "T");
dateString = dateString.concat("Z");

DateFormat dateformat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM, Locale.FRENCH);
System.out.println(dateformat.format(dateString));

但是我收到以下異常:

java.lang.IllegalArgumentException:無法將給定對象格式化為日期

這有什么問題嗎?

java.time

    String dateString = "2019-06-01 00:15:00";
    dateString = dateString.replace(" ", "T");
    dateString = dateString.concat("Z");

    DateTimeFormatter formatter = DateTimeFormatter
            .ofLocalizedDateTime(FormatStyle.SHORT, FormatStyle.MEDIUM)
            .withLocale(Locale.FRENCH);
    OffsetDateTime dateTime = OffsetDateTime.parse("2019-06-01T00:15:00Z");
    String formattedDateTime = dateTime.format(formatter);

    System.out.println("Formatted date/time: " + formattedDateTime);

輸出:

格式化日期/時間:01/06/2019 00:15:00

我建議您不要使用DateFormat 那個班級出了名的麻煩,而且早已過時。 而是使用java.time(現代Java日期和時間API)中的DateTimeFormatter ,如我的代碼所示。

對於您的代碼出了什么問題,請參閱我在底部鏈接到的類似問題。

鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM