亚马逊AWS RDS (MYSQL, MARIADB)中如何设置支持LOCAL TIME ZONE本地时区

   03/19/2016 4:00 pm   大 中 小 简体 繁體 字体:
1 颗星2 颗星3 颗星4 颗星5 颗星 (点击来评价哦~_~)
    678人参与

Amazon RDS默认Time zone是UTC(Universal Time Coordinated, 世界协调时间),当我们使用Amazon RDS时以前是利用Stored Procedure修改Time zone。使用Stored Procedure修改Time zone的方法参照以下文章。(中国时间和UTC时差均为+8,即UTC+8。)

GPS 系统中有两种时间区分,一为UTC,另一为LT(地方时)两者的区别为时区不同,UTC就是0时区的时间,地方时为本地时间,如北京为早上八点(东八区),UTC时间就为零点,时间比北京时晚八小时,以此计算即可。

修改Amazon RDS(MySQL)的Timezone

2015年12月AWS的Amazon RDS (MySQL, MariaDB,PostgreSQL以支持)支持local time zone,通过修改参数组的time_zone参数可以修改为任意的时间戳(例如,Asia/Shanghai是中国时间)。

并且在主从数据库,可以给主数据库和从数据库设定不同的参数组。

修改Amazon RDS的time_zone参数

(1) 确认Amazon RDS默认time_zone

创建Amazon RDS的方法,参照创建Amazon RDS(MySQL)。

连接Amazon RDS以后执行如下命令。

show variables like '%time_zone%';

执行结果如下。

 

AWS RDS time_zone参数

(2) 修改time_zone参数

创建Amazon RDS时没有指定参数组的话会使用默认参数组,默认参数组是不能修改的因此需创建新的参数组,并把Amazon RDS的参数组改为自定义的参数组。
※修改Amazon RDS参数组后需要重启RDS。

在这里把time_zone修改为「Asia/Shanghai」。

AWS RDS数据库

(3) 修改time_zone后

连接RDS查看执行如下命令,查看local time zone。


show variables like '%time_zone%';
select now();

查看结果如下。

AWS RDS数据库

可确认到time_zone已经别修改为「Asia/Shanghai」,时间也是中国时间。

在linux中,用date查看时间的时候显示:2008年 12月 17日 星期三 09:04:14 CST。这个CST是什么意思呢?

CST China Standard Time UTC+8:00 中国沿海时间(北京时间)

主要有三个概念:

(1)UTC/GMT:Coorainated Universal Time:它是一个标准,最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林尼治平时,也即格林威治标准时间(Greenwich Mean Time,GMT),在大多数场合,UTC与GMT等同(只是GMT不再由科学界精确定义)。
:为描述方便,本文中将UTC与GMT等同。

(2)Local time:指相对于UTC/GMT时间的本地时间(时区转换)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。美国是UTC-5。

(3)Calendar time:日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。在计算机中是相对于时间点:1970年1月1日,来算的。

c语言中主要数据类型、结构及函数(头文件:<ctime> (或者 time.h))types:

time_t:time type,通常为整型值,表示自1970年1月1日00:00到现在所经过的秒数。
typedef long time_t

struct tm:time structure,该结构体包含了日历时间和日期,其中各成员详细信息如下:

timezone时区

注:1,tm_year是指自1900年后的个数,故要得出真正的年份,还有加上1900(即tm_year + 1900)。2,tm_isdst指夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。但中国不实行夏令时,即此处应该0.

 

关键词: , , , , , , 

最多人阅读内容