解释4个时区设置的不同
分别解释如下:
-
ENV[‘TZ’]
这个变量指的是服务器系统变量,ubuntu下可以用cat /etc/timezone来查看
当这个值为 Asia/Shanghai时, 显示就是中国时间。
对于ruby/rails来说,这个值决定 Time.now的显示时间
-
config.time_zone
这个值是rails系统对显示时间的默认设置,可以通过 rake time:zones:all 列出所有可以设置的时区
一般来说把这个设置为 ‘Beijing’
-
Time.zone
这个是设置最终处理显示的时区,可以覆盖config.time_zone,参数和config.time_zone一样
可以参考 railscasts的这篇 Time Zones in Rails 2.1
-
config.active_record.default_timezone
这里就是全文的关键了!
这个default_timezone是决定active_record对数据库交互的时区设置,也就是影响created_at和updated_at在数据库的记录时间。
只有两个参数:utc和:local, rails初始化时默认是utc,所以保存到数据库的时间是utc时间。
总结
要在界面和数据库都很好的显示处理中国时区时间,编辑/path/to/site/config/application.rb(rails2是environment.rb), 加入
config.active_record.default_timezone = :local
config.time_zone = 'Beijing'
完美解决rails中国时区时间设置
以上内容为转发,留下脚印。原文在这里http://zool.it/posts/14
分享到:
相关推荐
Rails Engine,它为每个请求将Rails时区设置为浏览器的配置时区。 安装 将其添加到您的Gemfile中。 gem 'browser-timezone-rails' 确保您的application.js中包含以下每个条目: //= require js.cookie //= ...
Rails 2.1增加了对时区的支持,这意味着应用程序可以更好地处理不同地理位置用户的时间显示问题。通过这一特性,开发人员能够确保应用程序中的日期和时间能够准确地反映用户的本地时间设置。 **脏数据追踪(Dirty ...
Rails 4增强了配置选项,允许开发者更灵活地定制Rails的行为,例如调整日志级别,设置默认时区等。 10. **测试与性能** Rails 4改进了测试框架,包括更好的测试覆盖率工具和更快的测试运行速度。同时,`active_...
**初始化文件和配置** - `config/application.rb` 和 `config/environment.rb` 文件是Rails应用的主要配置点,可以设置全局应用配置,如时区、数据库连接等。 **测试** - Rails鼓励TDD(测试驱动开发),`test/` ...
这意味着所有的数据库时间戳都将统一为UTC格式,避免了由于本地时区设置导致的时间不一致问题。 ##### 更好的缓存机制 Rails 2.1在缓存方面进行了重大改进,提供了更多的缓存策略和选项,包括页面缓存、动作缓存和...
- **基于UTC的时间迁移**:为了确保数据一致性,Rails 2.1现在支持基于协调世界时(UTC)的时间迁移,这对于处理跨时区的应用来说非常重要。 - **缓存改进**:Rails 2.1进一步优化了缓存机制,使得缓存操作更加高效、...
- **国际化与多语言支持**:Rails提供了i18n(Internationalization)框架,支持多国语言和时区设置,便于构建全球化的应用。 #### 学习资源与社区 - **Rails Guides**:官方文档,提供了详尽的教程和API参考。 - *...
TimeZoneConverter是一个轻量级的库,可以在IANA,Windows和Rails时区名称之间快速转换。 TimeZoneConverter.Posix添加了对生成POSIX时区字符串的支持,这在IoT等特定情况下很有用。 TimeZoneConverter安装 PM > ...
- **时区支持**:Rails 2.1引入了对时区的全面支持,这极大地简化了全球应用程序的日期和时间处理,确保所有操作都能正确地考虑到用户的地理位置和时区差异。 - **脏数据追踪**:新增的脏数据追踪功能允许开发者轻松...
6. **时区处理**:Rails还支持时区的国际化,用户可以根据自己的时区设置看到相应的时间显示。通过`config.time_zone`配置时区,用户端可以通过`current_user.time_zone`获取并使用。 7. **动态切换语言**:在前端...
特征将时区名称解析为UTC偏移量支持所有TZ数据库缩写支持Ruby on Rails时区名称识别本地时区名称检查字符串是否为有效的时区或缩写当前和历史时区和偏移量按时间,地区,语言环境和夏令时过滤结果输入格式: 时区...
基于这些信息,我们将深入探讨Ruby on Rails框架的依赖结构,并解释每个依赖库的功能及其在Rails架构中的作用。 ### Ruby on Rails 依赖的目录树 #### 安装过程概览 在给定的部分内容中,我们看到一系列命令被...
书中深入探讨了诸如用户管理、安全性、时区处理、国际化、团队协作、自动化构建任务、部署生产环境服务器、网站安全加固以及如何利用Rails社区中的优秀资源等内容。 #### 知识点详解 **第1章:构建资源** - **...
TimeZoneConverter是一个轻量级的库,可以在IANA,Windows和Rails时区名称之间快速转换。 TimeZoneConverter.Posix添加了对生成POSIX时区字符串的支持,这在某些情况下(例如IoT)非常有用。 TimeZoneConverter...
rails-timezone-js提供了使用ActiveSupport中的在ActiveSupport时区名称之间进行转换的功能。 该库可以在node.js和浏览器中使用。 用法 该库提供两个功能: from(timezone) :从ActiveSupport时区名称转换 to(tz)...
I18nTimezones I18n时区-此gem的目的是简单地提供时区转换。 该gem易于与需要i18n时区转换的其他gem结合使用,因此我们可以使用通用的i18n时区转换gem。 如果您要对时区和翻译做任何事情,则无需重新发明轮子并...
2. **config/application.rb**: 这个文件是Rails应用的核心配置,可能会包含一些默认设置,如编码、时区、数据库配置等。 3. **config/routes.rb**: 这里定义了应用的路由规则,模板可能会有预先定义的路由结构,如...
这将使得所有`local_time`标签都按照上海时区进行显示,即使用户的浏览器设置的时区不同。 总的来说,`local_time`为Rails开发者提供了一个便捷的工具,以实现用户友好的时间显示,减少了处理时区问题的复杂性。...