亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將字符串轉換為 LocalDate

將字符串轉換為 LocalDate

慕沐林林 2022-05-25 16:32:07
我想轉換21022019為2019-02-21,但由于某種原因我無法轉換。import org.joda.time.LocalDate;import org.joda.time.LocalDateTime;import org.joda.time.format.DateTimeFormat;public class StringToLocalDate {    public static void main(String[] args) {        System.out.println(convert("21022019"));    }    static LocalDate convert(String date) {        LocalDateTime ldt;        ldt = LocalDateTime.parse(date, DateTimeFormat.forPattern("YYYY-MM-dd"));        return LocalDateTime.now().toLocalDate();    }} 
查看完整描述

3 回答

?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

如果您使用的是 Java 8,則可以使用由創建 Joda time 的同一個人 (Stephen Colebourne) 開發的本機 Java Time 庫。以各種格式解析和顯示日期非常容易。


您的主要問題似乎是您將預期對象視為 a LocalDateTime,但沒有時間存在。這本質上是通過運行時錯誤拋出您的代碼,該錯誤指出您需要包含時間,因此您應該使用 aLocalDate代替。


import java.time.LocalDate;

import java.time.format.DateTimeFormatter;


public class StringToLocalDate {

    public static String DATE_FORMAT_INPUT = "ddMMyyyy";

    public static String DATE_FORMAT_OUTPUT = "yyyy-MM-dd";


    public static void main(String[] args) {

        System.out.println(formatted(convert("21022019")));

    }


    public static String formatted(LocalDate date) {

        return date.format(DateTimeFormatter.ofPattern(DATE_FORMAT_OUTPUT));

    }


    public static LocalDate convert(String dateStr) {

        return LocalDate.parse(dateStr, DateTimeFormatter.ofPattern(DATE_FORMAT_INPUT));

    }

}

如果需要使用 1.8 之前的 Java 版本,可以使用以下。它非常相似。


import org.joda.time.LocalDate;

import org.joda.time.format.DateTimeFormat;


public class StringToLocalDate {

    public static String DATE_FORMAT_INPUT = "ddMMyyyy";

    public static String DATE_FORMAT_OUTPUT = "yyyy-MM-dd";


    public static void main(String[] args) {

        System.out.println(formatted(convert("21022019")));

    }


    public static String formatted(LocalDate date) {

        return date.toString(DateTimeFormat.forPattern(DATE_FORMAT_OUTPUT));

    }


    public static LocalDate convert(String dateStr) {

        return LocalDate.parse(dateStr, DateTimeFormat.forPattern(DATE_FORMAT_INPUT));

    }

}


查看完整回答
反對 回復 2022-05-25
?
四季花海

TA貢獻1811條經驗 獲得超5個贊

您應該使用另一種模式來解析輸入日期


   public static void main(String[] args) {


        System.out.println(convert("21022019"));

    }


    static LocalDate convert(String date) {

        return LocalDate.parse(date, DateTimeFormat.forPattern("ddMMyyyy"));

    }


查看完整回答
反對 回復 2022-05-25
?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

好像21022019是2019年2月21號,試試:

return LocalDate.parse(date, DateTimeFormat.forPattern("ddMMyyyy"))


查看完整回答
反對 回復 2022-05-25
  • 3 回答
  • 0 關注
  • 1088 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號