Java Date.format(日期)与Date.format(对象)
我发现java.text.DateFormat有两种格式化日期的方法。一个取日期参数,另一个取对象参数。我检查了DateFormat源代码,似乎它们调用了不同的内部方法 我的问题是,我应该使用哪种方法(方式)格式化日期?路1对路2 这是我的代码:Java Date.format(日期)与Date.format(对象),java,date-format,simpledateformat,Java,Date Format,Simpledateformat,我发现java.text.DateFormat有两种格式化日期的方法。一个取日期参数,另一个取对象参数。我检查了DateFormat源代码,似乎它们调用了不同的内部方法 我的问题是,我应该使用哪种方法(方式)格式化日期?路1对路2 这是我的代码: Object dateObject; // This is an instance of java.util.Date DateFormat df = this.createDateFormat(); String formatted1 =
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
有人有什么想法吗?谢谢。没关系。
格式(对象)
是基本格式
界面的一部分<代码>日期格式为清晰起见,还提供了格式(日期)
最后,format(Object)
version调用DateFormat.format(Object,StringBuffer,FieldPosition)
,它将从中按顺序尝试以下操作:
- 如果对象是
,则转换为日期
,并执行与日期
相同的转换格式(日期)
- 如果对象是一个
,则构造一个数字
,然后格式化它新日期(((数字)对象).longValue())
- 否则,抛出一个
IllegalArgumentException
格式(对象)
与格式(日期)
在对象为日期时相同
在您的情况下,因为date是一个对象
,我会简单地使用格式(对象)
,因为它不太冗长,而格式(对象)
将为您进行转换。您的WAY1方法来自日期格式
类,WAY2方法来自格式
类(日期格式
的祖先). 我认为这两种方法都从DateFormat
调用format方法,所以这两种方法都是等效的。@Loc当有疑问,并且文档本身不具体时,您可以随时在线查看源代码的各种版本(或者查看JDK源代码,如果它包含在您的发行版中)。的文档实际上在某种程度上保证了这种行为,尽管它与格式(对象)
的连接不是很明显。是的。我再次检查了代码,你的解释是正确的。我之前检查过,但没有看到该功能。我的错误。