我正在尝试解析特定日期的特定时间。当我将日期直接作为参数时,它工作正常,但是当我创建一个变量并将其放入参数时,它返回当前日期。
这是为什么?
注意:可变时间是 9pm
,我需要解析 2016 年 3 月 12 日
的 9pm
。
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
最佳答案
在您的第三次调用中,您使用了文字字符串“datetime”而不是您的datetime
变量的值。您可以使用字符串插值来使用变量的值:
DateTime.parse("#{datetime} 9pm")
在这种情况下,“晚上 9 点”将被忽略,因为将它添加到现有日期的末尾没有意义,但这就是最初尝试无效的原因。插值通常是使用变量值而不是其名称的解决方案。
如果您的目标是更改现有日期的时间,请使用 change method :
datetime.change(hour:21)
关于ruby-on-rails - Ruby 用变量解析 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987652/