【发布时间】:2012-03-03 02:38:29
【问题描述】:
我有一个字符串"12/9/2010 4:39:38 PM",我必须将其转换为日期对象。我正在使用以下代码来做到这一点:
String str = "12/9/2010 4:39:38 PM";
DateFormat formatter ;
Date date ;
formatter = new SimpleDateFormat("M/dd/yyyy H:m:s a");
date =(Date)formatter.parse(str);
System.out.println("date printed"+date);
但是,当我打印输出时,我看到了
2010 年 12 月 9 日星期四 04:39:38 IST
如何完全按照我在字符串中声明的方式获取日期,即
2010 年 12 月 9 日下午 4:39:38
作为输出?请帮忙
【问题讨论】:
-
为什么需要再次转换成相同的格式?
-
System.out.println("date printed"+date);正在引用 Date.toString() 方法。这就是打印日期的格式看起来“奇怪”的原因,也就是 toString() 使用的格式。如果要以默认格式以外的格式显示日期,则必须使用日期格式化程序(如下面的所有当前答案所示)。 -
@thinksteep:我在数组列表中有这些日期的字符串格式“12/9/2010 4:39:38 PM”。我必须找到最新的。所以我需要对它们进行排序。对于排序,我无法执行字符串排序。所以我将它转换为日期对象。然后使用自定义排序执行排序,然后当我尝试打印最新日期时,其格式将更改为“Thu Dec 09 04:39:38 IST 2010”。这就是我面临的问题。现在解决了。