我发现java.text.DateFormat有两个格式化日期的方法。一个是日期参数,另一个是对象参数。我检查了DateFormat源代码,它们似乎调用了不同的内部方法。
我的问题是我应该用哪种方法(方式)来格式化日期?方法1与方法2
这里是我的代码:
Object dateObject; // This is an instance of java.util.Date
DateFormat df = this.createDateFormat();
String formatted1 = df.format ( (Date) dateObject ); // WAY 1
String formatted2 = df.format ( dateObject ); // WAY 2 -- Calling different internal method.注意,对于方法1,我将dateObject转换为java.util.Date
有人有什么想法吗?谢谢。
发布于 2014-04-03 18:52:44
无所谓。format(Object)是基本Format接口的一部分;DateFormat还提供了一个清晰的format(Date)。
最终,format(Object)版本调用DateFormat.format(Object, StringBuffer, FieldPosition),该版本将从来源中尝试以下操作:
Date,则转换为Date并执行与format(Date)相同的转换。Number,则构造一个new Date(((Number)object).longValue()),然后格式化它。IllegalArgumentException。第一点使format(Object)在对象为Date时与Date相同。
在您的例子中,由于date是一个Object,所以我只使用format(Object),因为它不那么冗长,而format(Object)将为您执行转换。
发布于 2014-04-03 19:03:52
您的WAY1方法来自DateFormat类,WAY2方法来自Format类(祖先 of DateFormat)。我认为这两种方法都是从DateFormat调用format方法的,所以和都是等价的。
https://stackoverflow.com/questions/22846281
复制相似问题