java - Date.format(Date) 与 Date.format(Object)

标签 java date-format simpledateformat

我发现java.text.DateFormat有两种格式化日期的方法。一种是采用 Date 参数,另一种是采用 Object 参数。我检查了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) 是基本 Format 接口(interface)的一部分;为了清楚起见,DateFormat 还提供了 format(Date)

最终,format(Object) 版本调用 DateFormat.format(Object, StringBuffer, FieldPosition),来自 the source ,将按顺序尝试以下操作:

  • 如果对象是Date,则转换为Date并执行与format(Date)相同的转换。
  • 如果对象是Number,则构造一个new Date(((Number)object).longValue()),然后对其进行格式化。
  • 否则,抛出 IllegalArgumentException

当对象是Date时,第一点使得format(Object)format(Date)相同。

就您而言,由于 date 是一个 Object,我只需使用 format(Object) 因为它不太冗长,并且 format(Object) 将为您进行转换。

关于java - Date.format(Date) 与 Date.format(Object),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22846281/

相关文章:

java - 如何获取sql表中显示的日期格式?

java - 在 Java 中解析一个字符串到日期

java - datepicker不要在jsp中打开日历

java - 处理不同的 JSONArray 类型

java - KeyListener问题

java - JavaFX.TableView 中的日期格式

java - 从Java抽象类继承后访问属性

Java 和 Windows 区域设置

Java 仅显示年份

Java 创建 PST 格式的日期返回 PDT 格式的日期