Nice programing

Rails 3 : 오늘 날짜를 특정 시간대로 가져 오는 방법은 무엇입니까?

nicepro 2020. 11. 6. 20:03
반응형

Rails 3 : 오늘 날짜를 특정 시간대로 가져 오는 방법은 무엇입니까?


오늘 날짜를 확인하려면 다음을 수행합니다.

Date.today    # => Fri, 20 May 2011

오늘 날짜를 특정 시간대로 가져오고 싶습니다 'Melbourne'.

내 설정은 다음과 같습니다 application.rb.

config.time_zone = 'Melbourne'

그리고 설정 :

Time.zone = 'Melbourne'

각 작업 전에 내 응용 프로그램 컨트롤러에서.

그러나 그것은 도움이되지 않습니다 (이 설정은 데이터베이스에 저장된 날짜에만 영향을 미치기 때문에 추측합니다).

오늘 날짜를 어떻게 알 수 'Melbourne'있습니까?


다음을 수행 할 수 있어야합니다 Time.current.. Time.zone설정된 경우 멜버른의 현재 시간이 표시 됩니다.


Date객체에는 반드시 시간대가있는 것은 아니지만 Time객체에는 있습니다. 으로 시도한 Time다음 다시 다음으로 변환 할 수 있습니다 Date.

Time.now.to_date
# => Thu, 19 May 2011 
Time.now.in_time_zone('Melbourne').to_date
# => Fri, 20 May 2011 

Date.current

Date.current 아마도 가장 명확하고 간결한 방법이며 Rails 3에 추가되었습니다.

$ Date.current
#=> Sat, 14 Jul 2018

http://apidock.com/rails/v3.2.13/Date/current/class


그것은 Time.zone.today또한 작동하는 것 같습니다 .


변경하지 않고 특정 시간대에서 "오늘"을 얻으려면 Time.zonefl00r 및 Dylan Markow가 제안한 것과 같은 작업을 수행합니다.

Time.now.in_time_zone('Melbourne').to_date

아니면 이거:

Time.find_zone!('Melbourne').today

나는 시간대에 대한 Date.today_in_zone"오늘" Date을 더 쉽게 얻을 수 있는 작은 도우미 메서드 작성했습니다 .

 # Defaults to using Time.zone
 > Date.today_in_zone
=> Fri, 26 Oct 2012

 # Or specify a zone to use
 > Date.today_in_zone('Melbourne')
=> Sat, 27 Oct 2012

나는 그것이 좀 더 좋은 것 같아요 Time.find_zone!('Melbourne').today...

이를 사용하려면 'lib/date_extensions.rb'같은 파일에 넣으십시오 require 'date_extensions'.

class Date
  def self.today_in_zone(zone = ::Time.zone)
    ::Time.find_zone!(zone).today
  end
end

DateTime수업 사용

DateTime.now.in_time_zone 'Melbourne'

ruby-1.9.2-p0 :004 > Time.now
 => 2011-05-19 15:46:45 +0100 
ruby-1.9.2-p0 :006 > Time.now.in_time_zone('Melbourne')
 => Fri, 20 May 2011 00:47:00 EST +10:00 
ruby-1.9.2-p0 :007 > Time.now.in_time_zone('Melbourne').to_date
 => Fri, 20 May 2011

유효한 시간대 이름은 http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html 에서 확인 하세요.


Rails 3에서는 Date 객체에서 to_time_in_current_zone을 호출하여 간단히이 작업을 수행 할 수 있습니다.

Date.today.to_time_in_current_zone

참고URL : https://stackoverflow.com/questions/6060436/rails-3-how-to-get-todays-date-in-specific-timezone

반응형