繁体   English   中英

使用正则表达式将12小时时间转换为24小时制

[英]Convert 12-hour time to 24-hour time with a regex

我有一堆以这种格式开放时间的字符串:

Mon-Fri: AM7:00-PM8:00\nSat-Sun: AM8:00-PM6:00

我可以通过删除它来处理“AM”部分,但我想转换PM

  • 删除“PM”
  • 在“:”之前的数字上加12。
  • 注意PM有时是两位数的事实(例如PM11:00)

字符串中可以有零个或多个PM时间。

我不确定如何操纵时间作为数字。 我到目前为止:

opening_hours.sub! /PM([\d]?[\d]):/, "***\1***"

输出如下内容:

AM7:15-***\u0001***00

'\\ u0001`可能是由于字符串中的日文字符。

您可以利用String#gsub接受一个块这一事实。 这样的东西会为你做什么?

s = "Mon-Fri: AM7:00-PM8:00\nSat-Sun: AM8:00-PM11:00"

s2 = s.gsub('AM', '').gsub(/PM(\d+)/) do |match|
  (match.gsub('PM', '').to_i + 12).to_s
end

s2 # => "Mon-Fri: 7:00-20:00\nSat-Sun: 8:00-23:00"

看一下这个问题,ruby有一个叫做datatime的类。

在Ruby中将12小时时间转换为24小时格式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM