我正在使用long构建java.sql.Timestamp。有时它会在错误的时候让它正确! e.g。
76875给出时间戳“1970-01-01 01:01:16.875”
额外的小时来自哪里?问题出现了,然后自行消失:
“1970-01-01 00:01:16.875”。
导致问题的代码在Google appengine上运行,是否会让TimeZones搞砸了?我试图找出一种模式但尚未管理。
答案 0 :(得分:0)
数据库是否与您的应用在同一台服务器上运行?最有可能出现时区差异。
这里有一些变数。尝试找出问题所在的位置:
您可能想要为自己创建这些各种日期对象的表。尝试不同的long值,并为每个值创建一行java.util.Date,java.sql.Date,java.sql.Timestamp。
答案 1 :(得分:0)
刷新Timestamp
构造函数的内存:自1970年1月1日00:00:00 GMT以来的时间 - 毫秒。注意,它是 GMT 。
“1970-01-01 01:01:16.875”没问题,我猜你现在在欧洲时区(+1):)
试试new java.sql.Timestamp(76875).toGMTString()
,你会得到“1970年1月1日00:01:16 GMT”。
你也可以先致电TimeZone.setDefault(TimeZone.getTimeZone("GMT+0:00"));
,然后你的时间戳将是“1970-01-01 00:01:16.875”。