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

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

如何在java中將日期字符串EEE MMM dd解析為yyyy-MM-dd

如何在java中將日期字符串EEE MMM dd解析為yyyy-MM-dd

慕姐8265434 2023-10-12 17:06:07
我的日期格式為EEEEE MMMMM yyyy HH:mm:ss.SSSZ,我想將其轉換為 java 中的 yyyy-MM-dd 格式,我嘗試了以下方法,但出現了此異常java.text.ParseException: Unparseable date:   SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");    String dateInString = "Sun Oct 01 00:00:00 EDT 2017";    try {        Date date = formatter.parse(dateInString);        System.out.println(date);        System.out.println(formatter.format(date));    } catch (ParseException e) {        e.printStackTrace();    }有人可以幫我解決這個問題嗎?
查看完整描述

3 回答

?
翻閱古今

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

從 java-8 開始,您可以使用ZonedDateTime輸入日期的 with 模式,即EEE MMM dd HH:mm:ss zzz yyyy


String dateInString = "Sun Oct 01 00:00:00 EDT 2017";


ZonedDateTime time = ZonedDateTime.parse(dateInString,DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy"));

System.out.println(time.toLocalDate());   //2017-10-01

默認情況下,LocalDateISO-8601 日歷系統中沒有時區,例如 2007-12-03。


查看完整回答
反對 回復 2023-10-12
?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

您已將格式化程序定義為“日期、月份、年份”的概念,然后嘗試要求它解析根本不是這種格式的字符串。您需要制作一個可以格式化的格式化程序Sun Oct 01 00:00:00 EDT 2017dd-MMM-yyyy顯然不是。SimpleDateFormat 的 javadoc會告訴您需要使用什么字母組合。

一旦你掌握了這一點,就很容易了:用這個新的格式化程序進行解析,然后.format用你的舊格式化程序(那個dd-MMM-yyyy)進行調用。


查看完整回答
反對 回復 2023-10-12
?
慕雪6442864

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

您雙重創建 DateFormat 一次解析和一次格式化


DateFormat dfParse = new SimpleDateFormat("EEEEE MMMMM yyyy HH:mm:ss.SSSZ");

DateFormat dfFormat = new SimpleDateFormat("yyyy-MM-dd");

dfFormat.format(dfParse.parse("Sun Oct 01 00:00:00 EDT 2017"))


查看完整回答
反對 回復 2023-10-12
  • 3 回答
  • 0 關注
  • 273 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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