無法在Java 中將物件格式化為日期
在Java 中,當嘗試使用DateFormat.format 方法將給定物件格式化為日期時,您可能會遇到以下異常:
java.lang.IllegalArgumentException: Cannot format given Object as a Date
當您嘗試格式化的物件不是Date 實例時,會發生此錯誤。在您的情況下,您嘗試使用配置有「mm/yyyy」模式的 SimpleDateFormat 實例將字串(「2012-11-17T00:00:00.000-05:00」)格式化為日期。
解決方案
要解決此問題,您應該使用兩個SimpleDateFormat 物件:一個用於將輸入字串解析為Date 實例,另一個用於將結果Date 格式化為所需的格式:
<code class="java">import java.text.SimpleDateFormat; import java.util.Date; public class DateParser { public static void main(String args[]) { String monthYear = null; // Create input format to parse from "yyy-MM-dd'T'HH:mm:ss.SSSX" SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX"); // Create output format to format to "MM/yyyy" SimpleDateFormat outputFormat = new SimpleDateFormat("MM/yyyy"); String inputText = "2012-11-17T00:00:00.000-05:00"; try { // Parse the input string into a Date object Date date = inputFormat.parse(inputText); // Format the parsed Date into the desired format monthYear = outputFormat.format(date); System.out.println(monthYear); } catch (ParseException e) { System.err.println("Input string is not a valid date: " + e.getMessage()); } } }</code>
此方法將解析和格式化操作分開,確保在嘗試使用指定模式對其進行格式化之前將輸入正確轉換為Date 實例。
以上是如何處理 Java 中的「無法將物件格式化為日期」異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!