运行以下代码时,我收到UNPARSABLE DATE EXCEPTION
。
我该如何解决这个问题?
package dateWork;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateCreation {
/**
* @param args
*/
public static void main(String[] args) {
String startDateString = "2013-03-26";
DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
Date startDate=null;
String newDateString = null;
try
{
startDate = df.parse(startDateString);
newDateString = df.format(startDate);
System.out.println(startDate);
} catch (ParseException e)
{
e.printStackTrace();
}
}
}
答案 0 :(得分:12)
您在月份中使用了错误的dateformat,也应使用与日期相同的分隔符。
如果您的日期字符串格式为"2013/01/03"
对模式/
"yyyy/MM/dd"
如果您的日期字符串格式为"2013-01-03"
在您的模式"yyyy-MM-dd"
DateFormat df = new SimpleDateFormat("yyyy/mm/dd");
应该是
DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
MM --->一年中的一个月
毫米--->小时分钟
答案 1 :(得分:1)
String startDateString = "2013-03-26";
DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
您使用的模式与解析时的模式不同。
将其初始化为DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
或者这是String startDateString = "2013/03/26";
答案 2 :(得分:1)
MM
代替mm
-
代替/
即yyyy-MM-dd
,因为您在日期字符串中使用-
答案 3 :(得分:0)
在SimpleDateFormat的构造函数中传递相同的格式字符串(“yyyy-mm-dd”)
因为您的字符串日期是“2013-03-26”
如果您的日期是“2013/03/26”,请使用
的SimpleDateFormat( “YYYY / MM / DD”)