Ton*_*ony 20 ruby time datetime ruby-on-rails
我正在使用Time.parse从字符串创建一个Time对象.
由于某些原因
Time.parse("05-14-2009 19:00")
Run Code Online (Sandbox Code Playgroud)
导致一个参数我们的范围错误,而
Time.parse("05-07-2009 19:00")
Run Code Online (Sandbox Code Playgroud)
才不是
有任何想法吗?
Miq*_*uel 26
如果您知道字符串的格式使用:
Time.strptime(date, format, now=self.now) {|year| ...}
Run Code Online (Sandbox Code Playgroud)
http://www.ruby-doc.org/core-1.9/classes/Time.html#M000266
它将解决您的问题,并可能会更快Time.parse.
编辑:
看起来他们strptime从时间课上拿走了,但Date.strptime无论如何都要打电话.如果你在Rails上,你可以这样做:
Date.strptime("05-14-2009 19:00","%m-%d-%Y %H:%M").to_time
Run Code Online (Sandbox Code Playgroud)
如果你使用纯红宝石,那么你需要:
require 'date'
d=Date._strptime("05-14-2009 19:00","%m-%d-%Y %H:%M")
Time.utc(d[:year], d[:mon], d[:mday], d[:hour], d[:min],
d[:sec], d[:sec_fraction], d[:zone])
Run Code Online (Sandbox Code Playgroud)
另请参阅:Ruby on Rails中的日期和时间格式问题.
Oin*_*nak 15
这是因为启发式Time#parse.
这是由于英美格式.
用破折号' - '表示mm-dd-yyyy,斜线'/'表示dd/mm/yyyy.
此行为在1.9中故意更改.完成eur,iso和jp日期标准.
| 归档时间: |
|
| 查看次数: |
27552 次 |
| 最近记录: |