`
likaidalian
  • 浏览: 52034 次
社区版块
存档分类
最新评论
阅读更多
new dateformat() ,生成的dateformat 默认时区为 web application server 中设定时区

关于dateformat时区设置参见另外一篇liferay中时区处理

-----------------------------------------------------------------------------
mysql 时区设置

MySQL服务器有几个时区   http://hi.baidu.com/longhtml/item/efd64e0c1d0bec103a53ee58
(1) 系统时区
服务器启动时便试图确定主机的时区,用它来设置system_time_zone系统变量。

(2) 服务器当前的时区
全局系统变量time_zone表示服务器当前使用的时区。初使值为'SYSTEM',说明服务器时区与系统时区相同。可以用--default-time-zone=timezone选项显式指定初使值。
如果你有SUPER 权限,可以用下面的语句在运行时设置全局变量值
mysql> SET GLOBAL time_zone = timezone;

(3)每个连接的时区
每个客户端连接有自己的时区设置,用会话time_zone变量给出。其初使值与全局变量time_zone相同,但可以用下面的语句重设:
mysql> SET time_zone = timezone;

可以用下面的方法查询当前的全局变量值和每个连接的时区:
mysql> SELECT @@global.time_zone, @@session.time_zone;
查询结果:system system

查询DB服务器时间
mysql> select now(),  utc_time();
例如db服务器时区 GMT+9, 时间  2013-01-06 14:20:46
查询结果: 2013-01-06 14:20:46    05:20:46


修改系统时区后重启mysql, 此时mysql会主动读取系统时间, mysql的时区跟随系统时区变化。
或者更改mysql的配置文件(mysql.cnf), 在my.cnf的 [mysqld]区域中加上default-time_zone = '+8:00' eg: GMT+8 。
-----------------------------------------------------------------------------
tomcat 时区设置
默认时区GMT

TOMCAT系统时间设定方法http://qq396151722.iteye.com/blog/1488372
一、有catalina.bat和setenv.bat时候,
方法一(也是最简单的设置方式):编辑setenv.bat 把-Duser.timezone=GMT 改成-Duser.timezone=GMT+8

方法二:编辑catalina.bat ,搜索 set JAVA_OPTS=%JAVA_OPTS%,把这句话改成set JAVA_OPTS=%JAVA_OPTS% -Duser.timezone=GMT+8

如果方法一中设置好后,又采用方法二中的设置,则执行方法二中的设置。因为方法二的设置覆盖了方法一的设置。Catalina.bat是tomcat所有脚本中最重要的脚本,完成几乎所有的tomcat操作。如启动,关闭等等,都是由catalina.bat脚本来完成的。

猜想:如果方法二覆盖了方法一,那么方法二的语句一定是执行在方法一之后。

验证猜想:编辑catalina.bat,CTRL+F查找 setenv.bat ,找到这样一句话if exist "�TALINA_BASE%\bin\setenv.bat" call "�TALINA_BASE%\bin\setenv.bat" ,写在95行,这就是方法一,118行就是方法二。

二、在安装版的tomcat中,启动tomcat6W,在弹出框中选择Java,在Java Opinions中加入如下信息:

-Dfile.encoding=GBK
-Duser.timezone=GMT+8

--------------------------------------------------
liferay区域设置
用户区域设置:控制面板-〉用户(/我的帐户)-〉显示设置-〉时区

http://www.permeance.com.au/web/terry.mueller/home/-/blogs/how-to-use-time-zones-with-liferay-portal
--------------------------------------------------

getTimezoneOffset
返回一个整数值,这个整数代表了当前计算机上的时间和 UTC 之间相差的分钟数。

如果所在位置的时间落后于 UTC (比如, GMT-8),那么这个值就是正值,而如果所在位置的时间超前于 UTC (比如说, GMT+8),那么这个值就是负值。

Date date = new Date();
System.out.println(date.getTimezoneOffset() / 60 + " hours after UTC");

结果-8小时
-----------------------------------------

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics