Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Date.format(日期)与Date.format(对象)_Java_Date Format_Simpledateformat - Fatal编程技术网

Java Date.format(日期)与Date.format(对象)

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 =

我发现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


有人有什么想法吗?谢谢。

没关系。
格式(对象)
是基本
格式
界面的一部分<代码>日期格式为清晰起见,还提供了格式(日期)

最后,
format(Object)
version调用
DateFormat.format(Object,StringBuffer,FieldPosition)
,它将从中按顺序尝试以下操作:

  • 如果对象是
    日期
    ,则转换为
    日期
    ,并执行与
    格式(日期)
    相同的转换
  • 如果对象是一个
    数字
    ,则构造一个
    新日期(((数字)对象).longValue())
    ,然后格式化它
  • 否则,抛出一个
    IllegalArgumentException
第一点使
格式(对象)
格式(日期)
在对象为
日期时相同


在您的情况下,因为date是一个
对象
,我会简单地使用
格式(对象)
,因为它不太冗长,而
格式(对象)
将为您进行转换。

您的WAY1方法来自
日期格式
类,WAY2方法来自
格式
类(
日期格式
祖先). 我认为这两种方法都从
DateFormat
调用format方法,所以这两种方法都是等效的。

@Loc当有疑问,并且文档本身不具体时,您可以随时在线查看源代码的各种版本(或者查看JDK源代码,如果它包含在您的发行版中)。的文档实际上在某种程度上保证了这种行为,尽管它与
格式(对象)
的连接不是很明显。是的。我再次检查了代码,你的解释是正确的。我之前检查过,但没有看到该功能。我的错误。