Java 为什么是;2012-30-03“;用DateFormat解析为2014年6月3日?
我有一个字符串(例如:2012-30-03 12:30),我正在尝试使用以下代码:Java 为什么是;2012-30-03“;用DateFormat解析为2014年6月3日?,java,date,date-format,Java,Date,Date Format,我有一个字符串(例如:2012-30-03 12:30),我正在尝试使用以下代码: DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm"); this.startTime = (Date) df.parse(startTime); // startTime = "2012-30-03 12:30" 但当我尝试以下方法时: System.out.println(this.startTime); 以下内容将打印出来 2014年6月3日星期
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
this.startTime = (Date) df.parse(startTime); // startTime = "2012-30-03 12:30"
但当我尝试以下方法时:
System.out.println(this.startTime);
以下内容将打印出来
2014年6月3日星期二12:30:00 CEST
这到底是怎么回事
有没有更好的方法将我拥有的字符串类型转换为工作日期对象?我认为
DateFormat df=新的简化格式(“yyyy-MM-dd-HH:MM”)代码>
应该是
DateFormat df=新的简化格式(“yyyy-dd-MM HH:MM”)代码>
基于您提供的示例字符串(2012-30-03 12:30
)
将你对date类的愤怒集中到验证基础上,你就会没事了。;) 基本上我都在使用乔达时间:请看一看。具体地说,虽然可以说应该提出一个例外,但如果一个例外在2012年后30个月零3天出现,则“技术上是正确的”。在任何情况下,请尝试以更客观的形式写问题。正确地写下日期——它是如何工作的?可能是示例字符串出错了。没有人使用年-日-月格式。可能是年-月-日,月-日-年,或日-月-年。但我只能根据书面信息进行诊断。另外,除了非标准的日期格式之外,我在软件中还看到了一些奇怪的东西