2013-01-08 93 views
-3

我场在课堂测试:SimpleDateFormat的解析到日期

private Date date; 

码主:

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy"); 
Date now = new Date(); 
Test test = new Test(); 
test.setDate(sdf.parse(now.toString())); 

但我有错误:

java.text.ParseException: Unparseable date: "Tue Jan 08 14:10:23 GMT 2013" 
    at java.text.DateFormat.parse(Unknown Source) 

如何可以解析今天的日期以sava

+7

为什么不'test.setDate(现在的);'?或过于复杂'test.setDate(sdf.parse(sdf.format(now)));' – jlordo

+0

您发送的日期不符合预期的格式。您应该将格式更改为'EEE MM dd hh:mm:ss ZZZ yyyy'或更改字符串以将日期转换为'08.01.2013'。 –

回答

10

now.toString()不是将日期表示为字符串的好方法,因为它使用“默认”格式。为了表示的日期为一个字符串,你可以使用的SimpleDateFormatformat(Date date)方法:

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy"); 
Date now = new Date(); 

String dateAsString = sdf.format(date); //"08.01.2013" 
Date dateFromString = sdf.parse(dateAsString); 
+0

我觉得'String dateAsString = sdf.format(now);'是你的意思。另外值得一提的是,这个dataFromString在当地时区设置为午夜。根据数据的使用方式,日期可能会有所调整。 – GaryMcM

+0

这不是一个好的解决方案,因为我得到的结果是:Tue Jan 08 15:08:42 GMT 2013 我想要08.01.2013 – faszynski

+0

sdf.format(date);给你“08.01.2013”​​。请指定你想用这个'测试'来完成什么... – Fortega

相关问题