尝试将字符串日期转换为日期
java.text.ParseException:无法解析的日期:“2010年5月1日00:00:00 EDT 2010”
我试图使用SimpleDateFormat类解析这个日期。
java.util.Date prevStartDate = new Date(); java.util.Date prevStopDate = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); prevStartDate = dateFormat.format(startDateLY);
那是因为您使用的是yyyy-MM-dd
的格式 – 您必须将输入中的每个参数添加到该格式。
看起来您的格式是E MMM dd HH:mm:ss z yyyy
所以你需要从一个转换为另一个:
static DateFormat extended = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy"); static DateFormat simple = new SimpleDateFormat("yyyy-MM-dd"); String reformat(String extendedString) { Date yourDate = extended.parse(extendedString); String simpleString = simple.format(yourDate); return simpleString; }
或者,
String reformat(String dateString) { return simple.format(extended.parse(dateString)); }
SimpleDateFormat依赖于Locale,因此通过提供一个,您可以获取针对特定语言或国家/地区的Date字符串
DateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy"); Date date = (Date)formatter.parse("Sat May 01 00:00:00 EDT 2010"); String string = new String(date.getYear() + "-" + date.getMonth() + "-" + date.getDay());
应该更好,然后只是yyyy-MM-dd
。