Java SimpleDataFormat未按预期分析月份
我面临SimpleDateFormat的问题。当我试图执行程序时,我得到的输出是01-01-2014 20:18:18,而不是10-01-2014 20:18:18。 我正在发布我的代码。请帮我找出代码中的错误Java SimpleDataFormat未按预期分析月份,java,date,simpledateformat,Java,Date,Simpledateformat,我面临SimpleDateFormat的问题。当我试图执行程序时,我得到的输出是01-01-2014 20:18:18,而不是10-01-2014 20:18:18。 我正在发布我的代码。请帮我找出代码中的错误 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class ValidDate { public static voi
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ValidDate {
public static void main(String[] args) {
ValidDate vd = new ValidDate();
vd.processDate();
}
private void processDate() {
SimpleDateFormat sdf = new SimpleDateFormat("MM-DD-yyyy HH:mm:ss");
try {
Date dt = sdf.parse("10-01-2014 20:18:18");
System.out.println(sdf.format(dt));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
谢谢。使用
dd
表示月份中的日期DD
表示一年中的某一天。显然,年中的天优先于月,因此解析时,年中的天的01
值覆盖月的10
。对月中的天使用dd
DD
表示一年中的某一天。一年中的日期显然优先于月份,因此解析时,一年中的日期的01
值覆盖月份的10
。更改DD->DD
SimpleDateFormat sdf = new SimpleDateFormat("MM-DD-yyyy HH:mm:ss");
到
更改DD->DD
SimpleDateFormat sdf = new SimpleDateFormat("MM-DD-yyyy HH:mm:ss");
到
您正在获得所做工作的正确输出。您的假设得到了意外的输出。我应该得到10-01-2014 20:18:18作为O/P,但得到了01-01-2014 20:18:18为什么?您得到了正确的输出。您的假设得到了意外的输出。我应该得到10-01-2014 20:18:18作为O/P,但得到01-01-2014 20:18:18为什么?谢谢您的建议,但问题是MM我认为我给出了10,但得到了输出作为O/P01@user1832985读第三句。您正在使用
DD
进行解析,这一事实使得01
的年中日期的值(即月份01
,因为它是一年中的第一天)覆盖月10
的值。感谢您的建议,但问题在于MM我想我给出了10,但得到的输出为01@user1832985读第三句。使用DD
进行解析的事实使得01
的年中日期的值(即月份01
,因为它是一年中的第一天)覆盖月份10
的值。