far*_*din 1 ruby datetime ruby-on-rails
我正在尝试解析特定日期的特定小时.当我直接将日期作为参数时,它可以正常工作,但是当我创建一个变量并将其放入参数时,它会返回当前日期.
这是为什么?
注:变量的时间9pm,我需要解析9pm的12 March 2016.
datetime = DateTime.new(2016,3,12,9)
=> Sat, 12 Mar 2016 09:00:00 +0000
DateTime.parse("sat 12 march 2016 9pm")
=> Sat, 12 Mar 2016 21:00:00 +0000
DateTime.parse("datetime 9pm")
=> Mon, 14 Mar 2016 21:00:00 +0000
Run Code Online (Sandbox Code Playgroud)
在第三次调用中,您使用文字字符串"datetime"而不是datetime变量的值.您可以使用字符串插值来使用变量的值:
DateTime.parse("#{datetime} 9pm")
Run Code Online (Sandbox Code Playgroud)
在这种情况下,"9pm"被忽略,因为它没有意义添加到现有日期的末尾,但这就是为什么初始尝试不起作用的原因.插值通常是使用变量值而不是名称的解决方案.
如果您的目标是更改现有日期的时间,请使用更改方法:
datetime.change(hour:21)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
833 次 |
| 最近记录: |