如何解析日期字符串,例如“Sun Feb 24 09:34:20 IST 2013”。 知道为什么解析Full dateformat会失败吗?
DateFormat fullDf = DateFormat.getDateInstance(DateFormat.FULL);
String str = fullDf.format("Sun Feb 24 09:34:20 IST 2013");
System.out.println(str);
例外是:
java.lang.IllegalArgumentException: Cannot format given Object as a Date
答案 0 :(得分:8)
DateFormat fullDf = DateFormat.getDateInstance(DateFormat.FULL);
String str = fullDf.format(dt);
System.out.println(str);
我认为问题是format(dt.toString())
DateFormat
仅适用于日期值。很久以前我遇到过类似的问题。请务必核对reference。
作为线程的作者提到:
<强>伪代码:强>
DateFormat inFormatter = new SimpleDateFormat(<pattern>);
DateFormat outFormatter = new SimpleDateFormat(<pattern>);
String source; // parsed text from file
Date dt = inFormatter.parse(source);
String output = outFormatter.format(dt);
答案 1 :(得分:0)
请更改
行 String str = fullDf.format(dt.toString())
到
String str = fullDf.format(dt);
更好地处理对象而不是toString(),因为默认的toString()可能返回一个与预期完全不同的值
答案 2 :(得分:0)
DateFormat的格式函数可以包含对象,但这些对象必须是数字或日期。
因此只有String str = fullDf.format(dt);
才有效,String str = fullDf.format(now - dateOffset);
才有效。
答案 3 :(得分:0)
您无法使用DateFormat
类格式化String。改为使用日期对象。
替换
String str = fullDf.format(dt.toString());
带
String str = fullDf.format(dt);
它会起作用。