Ruby on rails 3 Rails:从datetime获取时间
如果我有一个日期时间值,比如2011年10月1日9:00:00,那么如何从该日期时间获取上午9:00 strftime会做到的Ruby on rails 3 Rails:从datetime获取时间,ruby-on-rails-3,datetime,Ruby On Rails 3,Datetime,如果我有一个日期时间值,比如2011年10月1日9:00:00,那么如何从该日期时间获取上午9:00 strftime会做到的 t = Time.now t.strftime("%I:%M%p") 此处的所有其他属性: 您可以使用以下代码从日期时间获取时间 datetime.strftime("%I:%M %P") 如果您只需要字符串输出,可以像Hitesh和Chris所说的那样使用strftime,但是如果您试图从DateTime的实例中获取Time的实例,可以执行以下操作: Time.p
t = Time.now
t.strftime("%I:%M%p")
此处的所有其他属性:
您可以使用以下代码从日期时间获取时间
datetime.strftime("%I:%M %P")
如果您只需要字符串输出,可以像Hitesh和Chris所说的那样使用
strftime
,但是如果您试图从DateTime
的实例中获取Time
的实例,可以执行以下操作:
Time.parse(DateTime.now.to_s)
如果您想要解析一个字符串,如“1/10/2011 9:00:00”
,并获取时间的实例
,您可以使用相同的解析
方法:
Time.parse("1/10/2011 9:00:00") #=> 2011-10-01 09:00:00 -0500
注意格式:Ruby在解析日期时使用非美国友好的d/m/y格式
要从该time
实例输出一天中时间的字符串表示形式,请返回到strftime
如果你需要从datetime开始搜索时间,希望这会把事情弄清楚。
:conditions => ["created_at::time > ?", "08:30" ]
从带有翻译的 如果使用I18n,您可以轻松定义 本地化将时间对象传递给
I18n.l
的时间格式,或者(最好)使用Rails的#l
助手。您可以通过传递:format选项来选择格式
# app/views/home/index.html.erb
<h1><%=t :hello_world %></h1>
<p><%= flash[:notice] %></p
<p><%= l Time.now, format: :short %></p>
# config/locales/pirate.yml
pirate:
time:
formats:
short: "arrrround %H'ish"
#app/views/home/index.html.erb
我需要24小时的时间,例如晚上11点将返回“23”
(不是11)
如果您可以理想地只提取一个没有关联日期的时间对象,那就太棒了。@TripTime
与一天的开始无关,但它是一个时间点。我同意《泰晤士报》的“一天中的时间”概念界面是有益的。@Trip实际上,这里有一个库似乎可以做到这一点(我没有玩过它,只是查看了自述):啊,很好推荐。不用再扔宝石,我只保存这样一个对象time=object.time.hour.hours+object.time.minutes.minutes
。这给了我几秒钟的时间,我可以添加到日期时间中。有趣的是,我以前从未见过这种情况。数据库支持这种格式(在::time创建的)
),还是Rails对其进行了一些处理以生成SQL语句?它只适用于MySQL或POSTgres等吗?@JoshuaPinter没有测试过,但很可能只适用于POSTgres(该:
正在将创建的转换为时间)
# app/views/home/index.html.erb
<h1><%=t :hello_world %></h1>
<p><%= flash[:notice] %></p
<p><%= l Time.now, format: :short %></p>
# config/locales/pirate.yml
pirate:
time:
formats:
short: "arrrround %H'ish"
Time.current.strftime("%H")
=> "18"