我们数据库中的每个用户都可以选择他/她自己的时区。我们的应用程序Eastern Time
的默认时区:
config.time_zone = 'Eastern Time (US & Canada)'
config.active_record.default_timezone = 'Eastern Time (US & Canada)'
当我在应用程序中显示某些日期/时间时,我通常会将其用于此目的.strftime
。如何为strftime
提供参数以正确显示日期/时间(在特定用户的给定时区内)?
或者使用strftime
格式化每个日期/时间是否更好?
修改
每个用户都有一个time_zone
字符串列,其中存储时区如下:"Eastern Time (US & Canada)"
。
由于每个时区都会重新计算每个日期/时间,性能如何?这不会减慢过多的渲染视图吗?
答案 0 :(得分:3)
在in_time_zone()
之前设置您的时间对象strftime
。
说您正在显示created_at
,您可以:
object.created_at.in_time_zone(current_user.timezone).strftime("...")