2013-05-07 58 views
0

我在轨道上的红宝石项目中有一个函数。 它可以创建任务名称和截止日期的特定任务。创建后它将显示任务的截止日期。如何正确显示红宝石在轨道上的时间

当我创建任务的任务名称,到期日期是存储在数据库中,如:

TASK_NAME:工作,DUE_DATE:2013年5月15日11:06:00

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

它显示了2013年5月15日13时06分00秒,而不是2013年5月15日11:06:00 和显示相关的代码像下面

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

我不知道是什么

l() 

函数用于。 如何正确设置时间。

+0

尝试'l assigned.due_at.localtime,:format =>:mmddhhss,:locale =>'id''我使用区域设置'id'' – 2013-05-07 10:38:52

回答

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小时的时区时间。你为你的应用程序定义了什么时区?

0

你可以用户strftime(),这样你就可以格式化你想要的日期/时间。 您可以使用此作为参考strftime()