java.util.Date有两个不同的输出?

时间:2013-04-17 08:23:49

标签: java date tostring

我有这个方法:

void updatePet(String userid, int index, int happiness, Date lastUpdated, PetLifePhase state, Date created)

记录所有对它的调用(通过反射Proxy)。参数为String.valueOf()'并且连接在一起:

updatePet(xxxxxxxx,18,-96,Wed Apr 17 08:10:11 UTC 2013,ACTIVE,2013-04-10 08:01:12.442)

注意两个Date参数的输出:

  • lastUpdatedWed Apr 17 08:10:11 UTC 2013(跟随Date.toString()的Javadoc)
  • created2013-04-10 08:01:12.442

怎么样,为什么,何时,是吗?为什么相同的方法输出两种不同的格式?我查看了这个toString()的来源,但输出第一种格式非常难以编码,没有if可能会另有决定。

3 个答案:

答案 0 :(得分:0)

我的猜测是created属于子类Timestamp,其格式为yyyy-mm-dd hh:mm:ss.fffffffff

答案 1 :(得分:0)

你确定你的两个Date实际上是Date的同一类型吗?

它们可能是Date以不同方式覆盖toString()方法的子类型(例如覆盖Timestamp的{​​{1}})。

答案 2 :(得分:0)

几乎可以说,您有一个参数是java.util.Date的实例,另一个参数是java.sql.Datejava.sql.Timestamp的实例