所以...我需要從 Array 內的日期中獲取時間
所以例如我有一個這樣的陣列
a = [
Thu, 17 Mar 2022 10:00:00.000000000 KST 09:00,
Thu, 17 Mar 2022 10:00:00.000000000 KST 09:00,
Thu, 17 Mar 2022 14:00:00.000000000 KST 09:00,
Thu, 17 Mar 2022 14:00:00.000000000 KST 09:00,
Thu, 17 Mar 2022 17:00:00.000000000 KST 09:00]
并希望有結果
a = ["10:00", "10:00", "14:00", "14:00", "17:00"]
所以我在嘗試這個
can_choose =[];
a.each_with_index do |time| strftime("%H:%M")
can_choose <<|time|
但根本不起作用...
我應該在哪里修復?
uj5u.com熱心網友回復:
您也可以以同樣的方式提取年、月、日 https://ruby-doc.org/stdlib-3.1.1/libdoc/date/rdoc/Date.html
a = [
'Thu, 17 Mar 2022 10:00:00.000000000 KST 09:00',
'Thu, 17 Mar 2022 10:00:00.000000000 KST 09:00',
'Thu, 17 Mar 2022 14:00:00.000000000 KST 09:00',
'Thu, 17 Mar 2022 14:00:00.000000000 KST 09:00',
'Thu, 17 Mar 2022 17:00:00.000000000 KST 09:00']
can_choose =[]
a.map do |time|
t = DateTime.parse(time)
can_choose << t.strftime("%k:%M")
end
p can_choose
=> ["10:00", "10:00", "14:00", "14:00", "17:00"]
uj5u.com熱心網友回復:
Ruby 是關于訊息傳遞的。發送訊息的語法是:
receiver.message(argument)
strftime是這樣的訊息,但它需要一個合適的接收者。因此,如果您有一些Time實體,例如:
time = Time.parse('2022-03-17 10:00:00 0900')
你會寫:
time.strftime('%H:%M') #=> "10:00"
time作為接收者,作為strftime資訊和'%H:%M'作為??論據。
each您可以在這樣的回圈中使用上面的代碼:
can_choose = []
a.each do |time|
can_choose << time.strftime('%H:%M')
end
或者您可以使用map將您的陣列轉換為另一個陣列:
can_choose = a.map { |time| time.strftime('%H:%M') }
這里的花括號{ ... }相當于do ... end上面的塊。
uj5u.com熱心網友回復:
我會簡單地選擇:
can_choose = a.map { |datetime| datetime.strftime('%H:%M') }
uj5u.com熱心網友回復:
如果您只需要 24 小時格式的小時和分鐘,只需使用帶有或%R的指令Time#strftimeDateTime#strftime
can_choose = a.map { |time| time.strftime('%R') }
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/446678.html
上一篇:從陣列中回傳特定的字串格式
