DateFormat 無法格式化字串物件
在Java 中,DateFormat 類別專門用於格式化和解析Date 物件,而不是字符串。提供的程式碼示範了一個常見錯誤,其中日期的字串表示形式 (“2012-11-17T00:00:00.000-05:00”) 直接傳遞給 DateFormat.format() 方法。這會導致“無法將給定物件格式化為日期”異常。
兩個SimpleDateFormat 物件方法
要解決此問題,需要使用兩個SimpleDateFormat 物件:一個用於將字串解析為Date 對象,另一個用於將Date 物件格式化為所需的格式。以下修改後的程式碼解決了問題:
<code class="java">import java.text.SimpleDateFormat; import java.text.ParseException; import java.util.Date; public class DateParser { public static void main(String args[]) { String MonthYear = null; String dateformat = "2012-11-17T00:00:00.000-05:00"; SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX", Locale.US); SimpleDateFormat outputFormat = new SimpleDateFormat("MM/yyyy", Locale.US); try { Date date = inputFormat.parse(dateformat); MonthYear = outputFormat.format(date); System.out.println(MonthYear); } catch (ParseException e) { System.err.println("Invalid date format."); } } }</code>
在此程式碼中:
以上是為什麼 DateFormat 會拋出「無法將給定物件格式化為日期」異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!