事情是这样的,我后台开启服务器去定一个时间发送东西,然后这个东西就正常发送出去,时间那些也是对的!!!!然后我进行另一个其他的GM操作-(手动输入一个原始数据库,解析这个数据库中的数据,然后放入到一个新的数据库中,这两个数据库都是手动输入的),等这个操作完了后,我又进行定时发送东西,然后,时间就出问题了。比正常时间少8个小时。我用的是Date,从页面上输入的时间也少8个小时!!定时发送也发送不了,,,,求大神解释解释啊!!!!!!!
我当时也觉得是时区问题,可是服务器在中国啊!!!而且重启服务器又没问题了!!!然后再进行解析操作又出问题了!!!所以很苦恼,很懵逼~~~太灵异了!!!我在页面输入时间,页面上显示的正确的时间,可是到了后台时间又少了8个小时!!!
嗯,我重新捋捋哈!!!!就是我所有时间是new Date()上的时间,然后呢!我这台电脑就相当于服务器!!那么我的电脑时间就是相当于服务器时间吧???然后呢!!我通过手动加载数据库的方式去解析原数据(这个不会改变时间时区吧)!!然后我用quartz也是用的我的电脑的时间,可是quartz不会执行
jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT+8
没有用cron,用的是这种
withIdentity(jobName, TRIGGER_GROUP_NAME).
withSchedule(
SimpleScheduleBuilder.
simpleSchedule().
repeatForever().
withIntervalInMinutes(x)
).endAt(endTime).
startAt(startTime).
build();
Sun Aug 27 18:06:00 UTC 2017
Mon Aug 28 10:14:33 UTC 2017
Tue Aug 29 18:07:00 UTC 2017
嗯???这个就可以了???能执行!!
https://www.oschina.net/p/cron
用这个工具生成小cron表达式
老大哥们,我觉得会不会真的是nutz的关系??因为我这边输出现在的时间还是8个小时以前的!!!这个时间是不定时会变成8个小时以前的!!然后导致quartz不能运行???,下面我贴的是开始时间,现在时间和结束时间!!!
Mon Aug 28 21:20:00 UTC 2017
Mon Aug 28 13:19:59 UTC 2017
Mon Aug 28 21:29:00 UTC 2017
我在url上设置了时区的也不对!!!!哎。。。
s.setUrl("jdbc:mysql://" + db.getServerIpPort() + "/" + db.getDbname()+"?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"
呃,你数据库字段类型是 datetime ?
来自美丽的 NutzCN
老哥们,我现在才看到!不好意思!!!!这个玩意儿还是莫名就变化了时区,而且不是因为数据库引起的!!!我存入字符串!然后莫名有时候时区也会多8小时或者少8小时!!!然后就导致quartz不能正常运行的!!所以我做了一个很坑的决定,每次运行时间前都将时区调到中国时区!!但是有时候还是会出现那个问题,但是几率小了很多!
@wendal
兽总,我也遇到了类似问题,数据库中存储的是2017-12-05 11:25:10
后台从数据库查询之后转为date类型的对象就变成了 2017-12-06 1:25:10,有14个小时的差距
一开始以为是服务器时间不对,但是检查之后并没有问题
不知道有没有遇到类似问题的
@wendal 必须要在db的配置上加上设置时区的一段话才能恢复正常,但是之前一直用的同一个服务器以及数据库都没有出现这样的问题
差别只是我把nutz 升级到了63版本,不知道是不是跟这个有关系,会不会和我把连接池升级到了
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.5</version>
有关系?