ruby-on-rails - Ruby 用变量解析 DateTime

标签 ruby-on-rails ruby datetime

我正在尝试解析特定日期的特定时间。当我将日期直接作为参数时,它工作正常,但是当我创建一个变量并将其放入参数时,它返回当前日期。

这是为什么?

注意:可变时间是 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/

相关文章:

ruby-on-rails - ruby rails 2.3.8 : Been having trouble getting testing things to work

ruby-on-rails - 无差异访问的哈希

ruby - 自定义用于整数转换的异常消息-Ruby

ruby-on-rails - 如何在 Rails 中使用可重用的 Controller 方法?

ruby-on-rails - 用于 Rails 应用程序的 Rolify fixtures 设置

sql - Ruby on Rails : joining two tables on something other than the standard foreign key

ruby-on-rails - 向现有表添加非空列的问题

r - 使用基本R功能对POSIX日期(POSIXct)进行四舍五入

java - Tapestry 。存在日期时间字段吗?

c# - 在 Azure Web Apps 上更改时区不适用于 DateTimeOffset.Now?