Datetime 如何在rails 3.0.1中更改时间格式

Datetime 如何在rails 3.0.1中更改时间格式,datetime,ruby-on-rails-3,Datetime,Ruby On Rails 3,有人能帮我吗 我认为: 该行的屏幕上显示: 2000年1月1日星期六17:18:00 UTC 每行都写着“1月1日星期六”+“UTC 2000” 我怎样才能摆脱它,只显示时间 非常感谢试试这样的东西 datetime = DateTime.civil(2007, 12, 4, 0, 0, 0, 0) # => Tue, 04 Dec 2007 00:00:00 +0000 datetime.to_formatted_s(:db) # => "20

有人能帮我吗

我认为:

该行的屏幕上显示: 2000年1月1日星期六17:18:00 UTC

每行都写着“1月1日星期六”+“UTC 2000”

我怎样才能摆脱它,只显示时间


非常感谢

试试这样的东西

  datetime = DateTime.civil(2007, 12, 4, 0, 0, 0, 0)   # => Tue, 04 Dec 2007 00:00:00 +0000

  datetime.to_formatted_s(:db)            # => "2007-12-04 00:00:00"
  datetime.to_s(:db)                      # => "2007-12-04 00:00:00"
  datetime.to_s(:number)                  # => "20071204000000"
  datetime.to_formatted_s(:short)         # => "04 Dec 00:00"
  datetime.to_formatted_s(:long)          # => "December 04, 2007 00:00"
  datetime.to_formatted_s(:long_ordinal)  # => "December 4th, 2007 00:00"
  datetime.to_formatted_s(:rfc822)        # => "Tue, 04 Dec 2007 00:00:00 +0000"
您还可以添加自定义格式,如下所示:

  # config/initializers/time_formats.rb
  Time::DATE_FORMATS[:month_and_year] = "%B %Y"
  Time::DATE_FORMATS[:short_ordinal] = lambda { |time| time.strftime("%B #{time.day.ordinalize}") }

您可以阅读完整格式语法的参考资料。例如:

%S-分钟的第二秒(00..60)

%H-一天中的一小时,24小时(00..23)


。等等。

很抱歉,上面说“nil:NilClass的未定义方法'strftime'”啊。。。好的,该错误消息表示您的post.date是一个Nil对象(空)。我给你的格式化方法可以工作,但它只能在真实日期工作。听起来您的数据库中没有填写日期。这是我的表。我在那里也得到了一些条目:create_table“detailures”;:force=>true do | t | t.string“title”t.text“content”t.date“date”t.time“time”t.integer“user_id”t.integer“course_id”t.datetime“created_at”t.datetime“t.datetime”更新_at”End在我的postgre数据库中,在“time-time with timezone”列中显示“17:18:00”,在“post.date”视图中显示“Sat Jan 01 17:18:00 UTC 2000”好的,因此您已经编辑了您的问题以使用post.time而不是post.date,但是strftime(“%H:%M:%S”)应该同样适用于post.time,只要从作为示例给出的数据库记录返回有效时间。您是否已将视图改为使用“post.time”?
<%= post.date.strftime('%H:%M:%S') %>