0

我正在从一个文件中读取日期值,我将它作为字符串对象读取。

日期值以多种格式变化,例如缝制如下:

01-Mar-2012
01/12/2012
01-12-2012
01.12.2012
01.Mar.2012
07/01/2008 12:00:00
07/01/2008 12:00:00 AM

我想要格式为 dd/mm/yyyy 的日期对象是什么格式。

有很多组合。

SimpleDateFormat 期望我提供格式化它的模式。

有什么方法可以猜测模式或从给定的字符串创建日期对象?

4

2 回答 2

2

你怎么知道 12-6-2012 是 12 月 6 日还是 6 月 12 日?!

你可以做的是定义一个包含所有可能模式的数组。

然后尝试解析每个数组条目的日期(如果它抛出异常,请尝试 nexct 模式等等)

我知道这是一个非常丑陋的尝试,但它有效!

于 2013-04-30T14:36:41.577 回答
0

我想要格式为 dd/mm/yyyy 的日期对象是什么格式。

一个java.util.Date对象没有格式——它包含的唯一信息是一个瞬间(具体来说,自 01-01-1970, 00:00:00 GMT 以来的毫秒数)。

因此,您不能拥有“dd/mm/yyyy 格式的日期对象”。Date对象没有格式,就像数字没有固有格式一样。

如果要以 dd/mm/yyyy 格式显示日期,则必须先使用SimpleDateFormat对象将其转换为字符串;您指定对象的格式SimpleDateFormat(而不是Date对象本身)。

// NOTE: use MM instead of mm; MM = months, mm = minutes
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");

Date now = new Date();

// Display the date in the format dd/MM/yyyy
System.out.println(df.format(now));
于 2013-04-30T15:31:09.143 回答