Mysql Rails服务器上的时间

Mysql Rails服务器上的时间,mysql,ruby-on-rails,time,timezone,Mysql,Ruby On Rails,Time,Timezone,所以。。。我在表中插入了一个带有时间戳的条目。这个条目插得很好。 但插入的时间戳是: '2015-06-22 10:32:47' 我在服务器上检查了时间: Tue Jun 23 01:35:41 IST 2015 在mysql中: select now(); 2015-06-23 01:33:57 所以我在irb中检查时间 time = Time.now => 2015-06-23 01:36:41 +0530 time.zone => "IST" 时区是对的。。但我不知道它

所以。。。我在表中插入了一个带有时间戳的条目。这个条目插得很好。 但插入的时间戳是:

'2015-06-22 10:32:47'
我在服务器上检查了时间:

Tue Jun 23 01:35:41 IST 2015
在mysql中:

select now();
2015-06-23 01:33:57
所以我在irb中检查时间

time = Time.now
=> 2015-06-23 01:36:41 +0530
time.zone
=> "IST"
时区是对的。。但我不知道它是从哪里来的时间?我想不出10点32分从哪里来的?我该如何修复它


感谢您的帮助。

Rails by design在将值插入数据库之前将日期时间转换为UTC

这是因为,一般来说,不可能在数据库中轻松表示时区。此外,在以下情况下,这种方法保证了日期的一致性和/或易于查询:

如果服务器时区更改,或者您使用不同的时区更改服务器 如果要使用其他时区查询日期 如果要根据用户或其他配置使用不同时区格式化日期 您可以自定义应用程序的默认时区,以便Rails在将值存储到数据库中时正确计算UTC的差值。但是,您无法更改此行为:时间在存储到数据库中之前,将始终转换为UTC

一般来说,如果您正确使用Rails日期转换帮助程序,这应该不会引起任何问题

例如,如果要查询时间已过的所有记录,请执行以下查询

Record.where('some_date < ?', Time.current)

将正确地将应用程序时区中的Time.current转换为UTC,并相应地查询数据库。

尝试从Rails控制台获取两者,看看是否有差异。因此。。。没有办法插入服务器时间而不是UTC时间吗?没有,目前没有。