在Ruby中设置DateTime的一部分怎么做?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

我有一个日期时间对象,例如DateTime.now。我想将小时和分钟设置为0(午夜)。我怎样才能做到这一点?

提问于
用户回答回答于

在Rails环境中:

可以使用:

DateTime.now.midnight
DateTime.now.beginning_of_day

DateTime.now.change({ hour: 0, min: 0, sec: 0 })

# More concisely
DateTime.now.change({ hour: 0 })                

在纯Ruby环境中:

now = DateTime.now
DateTime.new(now.year, now.month, now.day, 0, 0, 0, now.zone)

now = DateTime.now
DateTime.parse(now.strftime("%Y-%m-%dT00:00:00%z"))
用户回答回答于

需要创建一个新的日期时间:

DateTime.new(now.year, now.month, now.day, 0, 0, 0, 0)

扫码关注云+社区