Cuques
2010-03-17 16:47
浏览 156
已采纳

j2ee工程如何取得本地时间?(请见详细内容)

我做一个项目,在插入数据库时,创建时间用的是本地时间:
Timestamp createTime = new Timestamp(System.currentTimeMillis());
结果发现得到的时间跟正确时间差8个小时!
然后我用System.out.println(new Date());得到:Wed Mar 17 08:42:15 GMT 2010
看来是得的格林威治时间。

于是我上网查,有一个帮助有用:
在eclipse的preferences->java->installed jres里面
给default vm arguments加上参数-Duser.timezone=Asia/Shanghai
运行main程序里的System.out.println(new Date());得到了正确的时间。

然而在我的j2ee工程里,还是老样子——差8个小时,也没有那个选项可以加参数。
这样移到服务器上时间也一定会有问题的。
哪位大侠能解决这个问题啊??!!先谢谢啦!!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • hao117 2010-03-18 00:03
    已采纳

    在“首选项- >Tomcat - >JVM Settings ”项,设定 JRE 的版本为“ jre1.5.0_06”,并且添加如下几个JVM Parameters :

    -Xms128m

    -Xmx512m

    -Dfile.encoding=UTF8

    -Duser.timezone=GMT+08


    在catalina.bat(windows)/catalina.sh(linux)中 修改set JAVA_OPTS=%JAVA_OPTS%如下
    set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -Duser.timezone=GMT+08


    找一台能正常设置时区windows注册表 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones],备份,覆盖.;

    点赞 评论
  • 拽拽的初行者 2010-03-17 16:55

    j2ee工程 运行时 , 是Server启动(比如,Tomcat),Server启动时需要启动JVM的,而这个JVM用的是 你计算机的 时区配置。

    你的电脑的 时区配置怎么样?

    点赞 评论
  • 拽拽的初行者 2010-03-17 16:56

    [quote]eclipse的preferences->java->installed jres[/quote]

    这里配置的虚拟机的参数,在你的J2ee项目中时不生效的,因为J2ee Server会另外启动一个JVM的。

    不像你的 Main程序。。。

    点赞 评论
  • hermit1216 2010-03-17 17:13

    new java.sql.Date(System.currentTimeMillis());

    new java.sql.Date(new java.util.Date().getTime()):

    点赞 评论
  • machao299 2010-03-17 23:33

    System.currentTimeMillis 获得的不是本地时间吗?

    点赞 评论

相关推荐 更多相似问题