Program Club

루비 날짜를 정수로 변환

proclub 2020. 12. 15. 19:32
반응형

루비 날짜를 정수로 변환


Ruby Date를 정수로 변환하려면 어떻게해야합니까?


날짜는 직접 정수가 될 수 없습니다. 전의:

$ Date.today
=> #<Date: 2017-12-29 ((2458117j,0s,0n),+0s,2299161j)>
$ Date.today.to_i
=> NoMethodError: undefined method 'to_i' for #<Date: 2017-12-29 ((2458117j,0s,0n),+0s,2299161j)>

옵션은 Date를 시간으로 바꾸고 Int를 사용하여 epoch 이후 초를 제공하는 것입니다.

$ Date.today.to_time.to_i
=> 1514523600

또는 에포크 이후 일수와 같이 원하는 다른 숫자를 생각해보십시오.

$ Date.today.to_time.to_i / (60 * 60 * 24)  ### Number of seconds in a day
=> 17529   ### Number of days since epoch

t = Time.now
# => 2010-12-20 11:20:31 -0700

# Seconds since epoch
t.to_i
#=> 1292869231

require 'date'
d = Date.today
#=> #<Date: 2010-12-20 (4911101/2,0,2299161)>

epoch = Date.new(1970,1,1)
#=> #<Date: 1970-01-01 (4881175/2,0,2299161)>

d - epoch
#=> (14963/1)

# Days since epoch
(d - epoch).to_i
#=> 14963

# Seconds since epoch
d.to_time.to_i
#=> 1292828400

Time.now.to_i

에포크 형식 이후 초


임의의 DateTime객체 가있을 때 Ruby 1.8에 대한 솔루션 :

1.8.7-p374 :001 > require 'date'
 => true 
1.8.7-p374 :002 > DateTime.new(2012, 1, 15).strftime('%s')
 => "1326585600"

참조 URL : https://stackoverflow.com/questions/4492557/convert-ruby-date-to-integer

반응형