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

Parsing date to specific format in java

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Parsing a date in Java?
Java string to date conversion

如何解析默认返回此格式的日期对象:

1
Nov 22, 1963 00:00:00 PM

以这种格式:

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

谢谢你的帮助。


使用simpledateformat(http:/ / / / / docs.oracle.com JavaSE 6 / Java API文档/文字/ simpledateformat.html)分析原始的字符串类,它使用新的格式后,它的开发与simpledateformat格式类。


这表明你的问题的方式,你的一个机会的事情。

第一,你的所有,不要"解析一个约会对象。"你可以转换成一个字符串包含一个日期(即文本)到一个Date对象。这是什么所谓的语法分析。所以,你的字符串和解析的结果是一个Date对象你不"解析一个约会对象。"

(a Date对面一个对象转换为字符串格式)是。

Date对象由一个人没有格式。就像一个数(它只是没有在固有的格式),一Date只是约会。当你呼叫toString()(显式或implicitly)on a Date日期对象,然后将使用默认的格式和印刷Nov 22, 1963 00:00:00 PM那样子。但格式不是一个物业的Date对象本身。

一个显示Date在特定的格式,你可以使用一个DateFormat对象格式的日期字符串,然后加载到一个CAN印刷。你在DateFormat精确指定格式的对象。例如:

1
2
3
4
5
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);


1
2
3
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对象,你可以使用这一StringSimpleDateFormat答案,这里是相关的这步。

其次,你必须回到本Date在各自的文本格式,如:使用这一SimpleDateFormat

1
2
Format formatter = new new SimpleDateFormat("your format here");
String dateString = formatter.format(date);

fastdateformat是(从他们的API),"A几乎simpledateformat和线程安全的版本。"这是一个文章,这解释了它