簡體   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