在Java中将日期解析为特定格式

时间:2012-06-20 11:34:12

标签: java parsing date

  

可能重复:
  Parsing a date in Java?
  Java string to date conversion

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

Nov 22, 1963 00:00:00 PM

采用以下格式:

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

感谢您的帮助。

5 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

首先,您需要String来自Date的{​​{3}}对象,您可以使用Date,这是与此步骤相关的SimpleDateFormat

其次,您必须以相应的文字格式取回SimpleDateFormat,因此请再次使用Format formatter = new new SimpleDateFormat("your format here"); String dateString = formatter.format(date);

{{1}}

答案 3 :(得分: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

答案 4 :(得分:1)

你表达问题的方式表明你混淆了许多事情。

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

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

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

要以特定格式显示Date,您可以使用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);