可能重复:
用 Java 解析日期?
Java 字符串到日期的转换
我如何解析默认返回此格式的 Date 对象:
Nov 22, 1963 00:00:00 PM
到这种格式:
Fri Nov 22 1963 00:00:00 GMT-0600
感谢帮助。
可能重复:
用 Java 解析日期?
Java 字符串到日期的转换
我如何解析默认返回此格式的 Date 对象:
Nov 22, 1963 00:00:00 PM
到这种格式:
Fri Nov 22 1963 00:00:00 GMT-0600
感谢帮助。
使用 SimpleDateFormat ( http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html ) 类解析原始字符串,然后使用 SimpleDateFormat 类的新格式对其进行格式化。
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
您提出问题的方式表明您混淆了许多事情。
首先,您不会“解析 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);
首先,您需要有一个可以使用的Date
对象,这是与此步骤相关的答案。String
SimpleDateFormat
其次,您必须以相应的文本格式取回它Date
,再次SimpleDateFormat
用作:
Format formatter = new new SimpleDateFormat("your format here");
String dateString = formatter.format(date);
FastDateFormat是(来自他们的 api),“SimpleDateFormat 的快速且线程安全的版本”。 这是一篇解释它的文章