用Java解析日期?

Parsing a date in Java?

我有日期的文本格式为dd-mmm-y或d-mmm-y,其中月份是字母缩写(例如,2009年11月4日或2005年12月12日等)。我想分析它以生成java.util.date对象。

这可以通过利用java.text.dateformat类实现吗?还是有其他简单的方法?


您可能需要使用simpledateformat来解析自定义格式。本文将解释格式化的细节。

1
"d-MMM-yyyy" corresponds to 4-Nov-2009


SimpleDateFormat是通常用于此的类。注意,这个类不是线程安全的(有点违反直觉),如果您在线程上下文中使用这个类,那么研究joda及其datetimeformatter是值得的。


无论您做什么,请使用区域设置。这样,当输入以法语输入月份名称时,您仍然可以得到合理的结果。


你可以用java.text.SimpleDateFormat来做。单击链接,您将看到所有模式。

对于1-2位数的天,您可以使用d模式。对于3个字符的月份缩写,可以使用MMM模式。对于2位数的年份,您可以使用yy模式。

因此,应执行以下操作:

1
2
3
String dateString ="4-Nov-09";
SimpleDateFormat sdf = new SimpleDateFormat("d-MMM-yy");
Date date = sdf.parse(dateString);

签出simpledateformat

实例