如何从String值创建Date对象
在运行下面的代码时,我得到了一个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(); } } }
您在月份中使用了错误的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");
来自SimpleDateFormat Doc
MM —>一年一个月
mm —>小时分钟
MM
而不是mm
-
而不是/
即yyyy-MM-dd
因为你正在使用-
在日期字符串中
String startDateString = "2013-03-26"; DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
您正在使用与解析时不同的模式。
或者将其初始化为DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
或者这是String startDateString = "2013/03/26";
也看这篇文章
在SimpleDateFormat(“yyyy-mm-dd”)的构造函数中传递相同的格式字符串
由于你的字符串日期是“2013-03-26”
如果您的日期是“2013/03/26”使用
的SimpleDateFormat( “YYYY / MM / DD”)