String dateString = "07/25/2010 11:59:33 PM";
DateFormat format = new SimpleDateFormat("MM/DD/yyyy hh:mm:ss a");
Date testDate = format.parse( dateString );
System.out.println(format.format(testDate));
认为它可能与JDK有关,我尝试使用Joda-Time编写相同的内容并获得相同的结果。我错过了DateFormat如何工作的东西吗?
提前感谢您提供的任何见解!
答案 0 :(得分:3)
问题是格式字符串中的“DD” - 它应该是“dd”。
“DD”表示“一年中的某一天”...所以你说的是一年中的第25天,但在7月份......“一年中的一天”优先考虑,所以你'取而代之的是1月25日。
答案 1 :(得分:1)
DD表示Julian day中的日期。朱利安日可以描述一年中的任何一天,因此忽略月份。使用dd代替(每月),您将得到正确的结果。
答案 2 :(得分:0)
你必须注意格式化程序的区分大小写的问题。他们有点怪异。
尝试
DateFormat format = new SimpleDateFormat("MM/DD/yyyy hh:mm:ss a");
编辑:DD表示一年中的一天,dd =一个月中的一天
参考JAVA 1.6 API SimpleDateFormat