Java创建Unixtime和MySQL重新转换?
我有一个小型java应用程序,可以将日期导入mysql数据库。我使用以下代码转换时间:Java创建Unixtime和MySQL重新转换?,java,mysql,Java,Mysql,我有一个小型java应用程序,可以将日期导入mysql数据库。我使用以下代码转换时间: Calendar cal = Calendar.getInstance(); cal.set(2012, 2, 30, 0, 0); // for 2012-03-30 00:00 unixtime = cal.getTimeInMillis(); unixtime = unixtime / 1000; System.out.println(unixtime); // => 1333062005 如果
Calendar cal = Calendar.getInstance();
cal.set(2012, 2, 30, 0, 0); // for 2012-03-30 00:00
unixtime = cal.getTimeInMillis();
unixtime = unixtime / 1000;
System.out.println(unixtime); // => 1333062005
如果我跑步:
SELECT FROM_UNIXTIME(1333062005) AS T1;
我得到:
2012-03-30 01:00:05
我认为5秒是一些舍入差异,因为从毫秒到秒。但为什么是01:00而不是00:00
有什么想法吗?Mysql和Java有不同的时区。请将您的时区设置为:
SET time_zone = 'America/New_York';
这很糟糕,我无法更改mysql部分。我可以更改java部分中的任何内容吗。我的时区是gmt+1您看到的输出:选择@global.time\u zone、@session.time\u zone;并使用:TimeZone tz=Calendar.getInstance().getTimeZone()将其与Jave中的一个进行比较;System.out.println(“时区:+tz.getDisplayName());Java的输出是GMT+1,“系统”是“[~]日期+%Z”CET