繁体   English   中英

将字符串转换为Date对象

[英]Converting a string to Date object

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

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

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));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM