我正在从一个文件中读取日期值,我将它作为字符串对象读取。
日期值以多种格式变化,例如缝制如下:
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 期望我提供格式化它的模式。
有什么方法可以猜测模式或从给定的字符串创建日期对象?
你怎么知道 12-6-2012 是 12 月 6 日还是 6 月 12 日?!
你可以做的是定义一个包含所有可能模式的数组。
然后尝试解析每个数组条目的日期(如果它抛出异常,请尝试 nexct 模式等等)
我知道这是一个非常丑陋的尝试,但它有效!
我想要格式为 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));