About Time_Zone on ROR

UTC: 协调世界时,以原子时秒长为基础....(度娘)

GMT: 世界时,以地球自转为基础...(度娘)

mysql 中 timestamp 类型,内部存储4个字节,存储的时候转换为UTC时间存储,检索时再转换回当前的时区( time zone ).


ROR 中获取及设置time zone

~> Time.zone          # => (GMT+00:00) UTC

~> Time.zone = 'Beijing'  # => "Beijing"
~> Time.zone          # => (GMT+08:00) Beijing

~> Time.zone = 'Pacific Time (US & Canada)'
~> Time.zone          # => (GMT-08:00) Pacific Time (US & Canada)

~> Time.zone = 'International Date Line West'
~> Time.zone          # => (GMT-11:00) International Date Line West

~> Time.zone = 'Hawaii'
~> Time.zone          # => (GMT-10:00) Hawaii
~> Time.zone.now  # => Wed, 14 Jan 2015 20:41:09 HST -10:00
~> Time.zone.now.to_s   #=> "2015-01-14 20:41:44 -1000"

~> Time.now          # => 2015-01-15 14:43:13 +0800
~> t = Time.now.utc  # => 2015-01-15 06:38:32 UTC
# attention, irrelevant with Time.zone
~> t.localtime          # => 2015-01-15 14:38:32 +0800

Convert utc to date with time zone:

~> t = Time.now     # => 2015-01-15 14:51:52 +0800
~> t.in_time_zone("Hawaii")  # => Wed, 14 Jan 2015 20:51:52 HST -10:00
~> t.in_time_zone("Hawaii").to_s  # => "2015-01-14 20:51:52 -1000"

You can find the names of the ActiveSupport time zones:

~> ActiveSupport::TimeZone.all.map(&:name)
~> ActiveSupport::TimeZone.us_zones.map(&:name)


~> ts = "2015-01-14 20:51:52 -1000"
~> Time.parse(ts) 
~> Time.zone.parse(ts)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值