将.localtime格式更改为12小时格式

时间:2015-12-10 18:02:25

标签: ruby-on-rails ruby timezone haml

我正在创建一个列,显示用户何时完成证书。我希望完成的日期以12小时格式显示在用户的时区中。截至目前,我有正确的时区显示 - 但它显示在军事时间。如何以12小时格式显示用户所在时区的时区?

这是我在.rb文件中的内容:

def date_earned
  if user_certificate
   user_certificate.created_at.localtime
  else
    'Not Completed'
  end
end

这是我的.html.haml代码行:

%span.date-earned
  =certificate_presenter.date_earned

目前在列中显示为:

2015-12-09 14:29:12 -0800

2 个答案:

答案 0 :(得分:0)

更改此行:

user_certificate.created_at.localtime

user_certificate.created_at.localtime.strftime("%Y-%m-%d %I:%M:%S %z")

答案 1 :(得分:0)

使用

user_certificate.created_at.localtime.strftime("%Y-%m-%d %I:%M:%S %z")

2015-12-09 02:29:12 -0800

user_certificate.created_at.localtime.strftime("%Y-%m-%d %I:%M:%S:%P %z")

" 2015-12-09 02:29:12:pm -0800"

其中'%P'识别上午或下午。