我想从String中解析java.util.Date
。我尝试了以下代码,但得到了意想不到的输出:
Date getDate() {
Date date = null;
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd");
try {
date = sdf.parse("Sat May 11");
} catch (ParseException ex) {
Logger.getLogger(URLExtractor.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
return date;
}
当我运行上面的代码时,我得到以下输出:
Mon May 11 00:00:00 IST 1970
答案 0 :(得分:6)
您没有在字符串中指定一年。默认年份是1970年。1970年5月11日是星期一 - SimpleDateFormat
只是忽略了字符串中的工作日。
日期表示为
Date
对象或 自1970年1月1日00:00:00 GMT以来的毫秒数。
答案 1 :(得分:0)
如果年份是问题,您可以为年添加y
:
public Date getDate() {
Date date = null;
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd y");
try {
date = sdf.parse("May 11 2010");
} catch (ParseException ex) {
Logger.getLogger(URLExtractor.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
return date;
}
System.out.println(getDate());
Tue May 11 00:00:00 EDT 2010
修改强>
要获得一周中的正确日期,您需要指定日期(带年份)。我编辑了上面的代码。
答案 2 :(得分:0)
在格式中指定一年以获得正确的输出。
如果您未指定任何年份,则默认值为1970。