我正在尝试将“Mon Jan 14 00:00:00 GMT-12:00 2013”类型的日期转换为 java.sql.Date yyyy/MM/dd 类型,我编写了以下代码。在尝试执行下面的代码时,我收到“无法解析的日期”错误。请帮助我解决以下问题。
DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
try{
java.sql.Date xdate=new java.sql.Date(df.parse("Mon Jan 14 00:00:00 GMT-12:00 2013").getTime());
System.out.println(xdate.toString());
}catch(Exception x)
{
System.out.println(x.getMessage());
}
最佳答案
与其他答案一样,您使用了错误的模式来解析您获得的日期字符串。
事实上,您需要该模式,但要将 Date
对象转换为所需的模式。但首先您需要获取给定日期字符串的 Date
对象。为此,您需要构建与您拥有的字符串完全匹配的模式。
日期格式有两个方面:-
- 解析 - 日期字符串到日期对象
- 格式化 - 将日期对象格式化为日期字符串
所以,你首先需要使用DateFormat#parse()
,然后 DateFormat#format()
,具有不同的图案。
所以,这是您需要的代码:-
String fromDate = "Mon Jan 14 00:00:00 GMT-12:00 2013";
Date date = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy").parse(fromDate);
java.sql.Date toDate = new java.sql.Date(date.getTime());
System.out.println(new SimpleDateFormat("yyyy/MM/dd").format(toDate));
关于java - Java中的日期转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14364863/