簡體   English   中英

分割字符串並用ruby放入變量

[英]Split string and put in variables with ruby

我從用戶“ Wed,02 Nov 2016 19:00:00”獲得了以下輸入。 如何使用ruby分割此字符串的日期和時間以及放置在變量中? 那么,如何從變量中獲取相同的字符串呢?

我看起來在ruby.tried上扔正則表達式和日期文檔試圖寫smth:

require 'date'

puts DateTime.strftime('Wed, 02 Nov 2016 19:00:00', '%a, %d %b %y %H:%M:%S')

得到了錯誤

test-2.rb:17:in `<main>': undefined method `strftime' for DateTime:Class (NoMethodError)
Did you mean?  strptime
               _strptime 
 irb(main):001:0> require 'time'
=> true
irb(main):002:0> dt = DateTime.parse('Wed, 02 Nov 2016 19:00:00')
=> #<DateTime: 2016-11-02T19:00:00+00:00 ((2457695j,68400s,0n),+0s,2299161j)>
irb(main):003:0> dt_date = dt.strftime('%Y/%m/%d')
=> "2016/11/02"
irb(main):004:0> dt_time = dt.strftime('%H:%M:%S')
=> "19:00:00"
irb(main):005:0>
require 'time'

time = Time.parse("Wed, 02 Nov 2016 19:00:00")

p time #2016-11-02 19:00:00 +0000  
p time.day #2
p time.month #11
p time.year #2016

您可以通過要求模塊時間來解析時間。 它將采用用戶提供的字符串日期,並將其轉換為ruby可以識別的實際日期和時間。 然后,您可以使用時間模塊提供的內置方法,並將該數據存儲到變量中。 我希望能回答您的問題。

解析時間對象

此代碼提取一個Time對象,並將其轉換回日期,時間和date_time字符串。

require 'time'

time = Time.parse("Wed, 02 Nov 2016 19:00:00")

date_str     = time.strftime('%a, %d %b %Y')    #=> "Wed, 02 Nov 2016"
time_str     = time.strftime('%T')              #=> "19:00:00"
datetime_str = time.strftime('%a, %d %b %Y %T') #=> "Wed, 02 Nov 2016 19:00:00"

直接分割字串

如果不需要Time對象,則可以將字符串拆分為最后一個空格:

date, time = "Wed, 02 Nov 2016 19:00:00".split(/ (?=\S+$)/)
date # => "Wed, 02 Nov 2016"
time # => "19:00:00"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM