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中文网其他相关文章!