0

可能重复:
用 Java 解析日期?
Java 字符串到日期的转换

我如何解析默认返回此格式的 Date 对象:

Nov 22, 1963 00:00:00 PM

到这种格式:

Fri Nov 22 1963 00:00:00 GMT-0600

感谢帮助。

4

5 回答 5

2

使用 SimpleDateFormat ( http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html ) 类解析原始字符串,然后使用 SimpleDateFormat 类的新格式对其进行格式化。

于 2012-06-20T11:36:54.720 回答
1
SimpleDateFormat sdfDestination = new SimpleDateFormat("E MMM-dd-yyyy hh:mm:ss");
sdfDestination .setTimeZone(TimeZone.getTimeZone("GMT-6").getID());
String strDate = sdfDestination.format(oldDateObject); //pass here your old date object
于 2012-06-20T11:50:30.187 回答
1

您提出问题的方式表明您混淆了许多事情。

首先,您不会“解析 Date 对象”。您可以将包含日期(作为文本)的字符串转换为Date对象。这就是所谓的解析。所以,你解析一个字符串,结果是一个Date对象——你不“解析一个 Date 对象”。

相反(将Date对象转换为字符串)称为格式化

Date对象本身没有格式。就像数字只是一个数字(它没有固有的格式)一样,aDate只是一个日期。当您toString()(显式或隐式)调用Date对象时,日期将使用某种默认格式打印,例如Nov 22, 1963 00:00:00 PM. 但格式不是Date对象本身的属性。

Date以特定格式显示 a,您可以使用DateFormat对象将日期格式化为可以打印的字符串。DateFormat您在对象中指定确切的格式。例如:

Date date = new Date();

DateFormat df = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss Z");
String text = df.format(date);
System.out.println(text);
于 2012-06-20T12:06:48.790 回答
1

首先,您需要有一个可以使用的Date对象,这是与此步骤相关的答案。StringSimpleDateFormat

其次,您必须以相应的文本格式取回它Date,再次SimpleDateFormat用作:

Format formatter = new new SimpleDateFormat("your format here");
String dateString = formatter.format(date);
于 2012-06-20T11:44:42.093 回答
1

FastDateFormat是(来自他们的 api),“SimpleDateFormat 的快速且线程安全的版本”。 是一篇解释它的文章

于 2012-06-20T11:41:33.380 回答