programing tip

문자열에서 Ruby 날짜 객체를 어떻게 생성합니까?

itbloger 2020. 11. 10. 07:53
반응형

문자열에서 Ruby 날짜 객체를 어떻게 생성합니까?


다음 문자열에서 Ruby 날짜 객체를 어떻게 생성합니까?

DD-MM-YYYY

Date.parse('31-12-2010')

또는 Date#strptime(str, format).


미국에서는 날짜를 거꾸로 가져 오기 Date.parse()때문에 2001 년 9 월 11 일이 미국에서는 2001 년 9 월 11 일이고 나머지 국가에서는 2001 년 11 월 9 일이 될 수 있으므로 단순히 사용하지 않는 것이 중요 합니다. Date::strptime(your_date_string,"%d-%m-%Y")형식의 날짜 문자열을 올바르게 구문 분석하는 데 완전히 모호하지 않게 사용하십시오 dd-mm-yyyy.

다음을 확인하십시오.

>irb
>> require 'date'
=> true
>> testdate = '11-09-2001'
=> "11-09-2001"
>> converted = Date::strptime(testdate, "%d-%m-%Y")
=> #<Date: 4918207/2,0,2299161>
>> converted.mday
=> 11
>> converted.month
=> 9
>> converted.year
=> 2001

다른 strptime형식은 http://pubs.opengroup.org/onlinepubs/009695399/functions/strptime.html을 참조 하십시오.

또한 항상 :utc내 웹 사이트에서 날짜를 처리 경우 기본 시간대를 설정 Javascript하고 클라이언트 측에서 현지 시간을 표시 하도록 설정했는지 확인 합니다.


Time # parse를 사용할 수 있습니다 .

Time.parse("20-08-2010")
# => Fri Aug 20 00:00:00 +0200 2010

그러나 Ruby가 날짜를 "MM-DD-YYYY"로 구문 분석 할 수 있으므로 가장 좋은 방법은 입력 형식을 지정할 수있는 DateTime # strptime 을 사용하는 것입니다.


다음과 같이 문자열에서 시간 개체를 가져올 수 있습니다.

t = Time.parse "9:00 PM" 
 => 2013-12-24 21:00:00 +0530

t = Time.parse "12:00 AM"
 => 2013-12-24 00:00:00 +0530 

그러나 Ruby는 이것을 Date로 파싱합니다!

따라서 열을 문자열로 사용할 수 있습니다.

add_column :table_name, :from, :string, :limit => 8, :default => "00:00 AM", :null => false
add_column :table_name, :to, :string, :limit => 8, :default => "00:00 AM", :null => false 

속성에 문자열 객체를 할당 할 수 있습니다.

r.from = "05:30 PM"
r.save

시간 객체를 얻기 위해 문자열을 구문 분석합니다.

Time.zone.parse("02:00 PM")

이 방법은 파서의 날짜 형식을 지정하지 않아도되기 때문에 더 간단합니다.

date1 = Time.local (2012, 1, 20, 12, 0, 0) .to_date


이 특정 문자열 형식에는 필요하지 않지만 내가 아는 최고의 문자열 대 시간 구문 분석 유틸리티 는 보석으로 사용할 수 있으며 인간 형식의 날짜 / 시간에 대한 유스 케이스의 약 99.9 %에서 작동하는 Chronic 입니다.

참고URL : https://stackoverflow.com/questions/3529470/how-do-i-create-a-ruby-date-object-from-a-string

반응형