-1

我有这个方法:

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

所有对它的调用都会被记录(通过反射Proxy)。参数是String.valueOf()'d 并连接起来的:

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

注意两个Date参数的输出:

  • lastUpdated: Wed Apr 17 08:10:11 UTC 2013( 遵循 的 Javadoc Date.toString())
  • created2013-04-10 08:01:12.442

怎么,为什么,什么时候,嗯?为什么同一个方法输出两种不同的格式?我查看了 this 的源代码toString(),但是输出第一种格式的代码非常硬,没有if其他可能决定的 s 。

4

3 回答 3

0

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

于 2013-04-17T08:29:22.487 回答
0

您确定您的两个Dates 实际上是同一类型的 sDate吗?

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

于 2013-04-17T08:29:31.960 回答
0

几乎可以肯定的是,您有一个参数是 的实例,java.util.Date而另一个参数是java.sql.Dateor的实例java.sql.Timestamp

于 2013-04-17T08:30:14.187 回答