如何在轨道上的红宝石中正确显示时间

时间:2013-05-07 09:32:36

标签: ruby-on-rails time timezone

我在rails项目中的ruby中有一个函数。 它可以创建具有任务名称和截止日期的特定任务。创建后,它将显示任务的截止日期。

创建任务时,任务名称和截止日期存储在数据库中,如:

task_name:working,due_date:2013-05-15 11:06:00

它们正确存储在数据库中。 但是当你显示任务信息时,到期时间总是晚两个小时。

它显示2013-05-15 13:06:00而不是2013-05-15 11:06:00 和节目相关的代码如下

l(assigned.due_at.localtime, :format => :mmddhhss)

我不知道

是什么
 l()

功能用于。 如何正确设置时间。

2 个答案:

答案 0 :(得分:2)

l()方法正在定位特定时区的时间。

我在西班牙,所以:

l(Time.now) # I18n.l(Time.now) if you are testing trough the console

应输出:

"martes, 07 de mayo de 2013 12:16:38 +0200"

查看字符串末尾的+0200,表示“加上UTC时间两小时”。 UTC时间是世界时,以前称为格林威治时间。

因此,您似乎使用UTC时间存储数据,然后显示距UTC时间+2小时的时区时间。您为自己的应用定义了什么时区?

答案 1 :(得分:0)

您可以使用strftime(),这样您就可以根据需要设置日期/时间格式。 您可以将其用作参考strftime()