Rails Date로today Date.current Date.tomorrow Date.Yesterdat랑 날짜가 달라요?( #Rails #ruby )

6753 단어 RubyRails

결론

  • Date.투데이는 루비의 물건이다.ENV 및 시스템을 참조하는 시간대인 것 같습니다.
  • Date.current Date.yesterday Date.tomorrow는 Rails의 것입니다.Rails의 config를 참조하는 것 같습니다.
  • Rails 방법과 Ruby 방법이 처리하는 시간대가 다른 경우가 나타납니다.
  • Rails에는 Date가 사용됩니다.투데이가 아니라 데이트야.current에 넣는 것이 비교적 안전할 수 있습니다.

    Date.today

  • 루비의 방법.
  • ENV나 시스템의 시간대를 보는 것 같습니다.
  • pry를 시작하고 확인합니다.즉시 일본 시간과 맞지 않는 시간대를 지정해 보았다.
  • [14] pry(main)> ENV['TZ'] = 'Asia/Tokyo'
    => "Asia/Tokyo"
    [15] pry(main)> Date.today
    => Thu, 31 Oct 2019
    
    [12] pry(main)> ENV['TZ'] = 'America/Phoenix'
    => "America/Phoenix"
    [13] pry(main)> Date.today
    => Wed, 30 Oct 2019
    
    시스템의 시간대는?
    날짜 지령에서 볼 수 있는 것들
    date
    Thu Oct 31 01:27:24 UTC 2019
    

    Date.current

  • Rails의 config를 보는 것 같아요.
  • rails console로 확인.
  • application.rb의 config.time_zone = 'Tokyo' 부분을 고쳐 테스트하다.설정을 다시 쓴 후 rails console를 다시 시작합니다.
  • [1] pry(main)> Rails.application.config.time_zone
    => "Tokyo"
    [2] pry(main)> Date.current
    => Thu, 31 Oct 2019
    
    [1] pry(main)> Rails.application.config.time_zone
    => "America/Phoenix"
    [2] pry(main)> Date.current
    => Wed, 30 Oct 2019
    

    왜 이런 일이 일어났을까?


    Rails에서는 Date입니다.yesterday Date.Tomorow라는 편한 방법을 만들었어요!
  • Rails 방법이므로 rails의 config를 참조하세요!직감적으로 쓰기 편하네요!
  • 에도 데이트가 있다.today는 루비의 본래 방법이기 때문에 동작을 고칠 수 없습니다.어쩔 수 없어, 일찍 이겼어.
  • 참, 라일스를 위한 새로운 방법인 데이트.current 만들어 주세요!이해하기 쉽죠?이렇게 Rails의 방법은 Date입니다.yesterday Date.current Date.tomorow의 세 개의 Date로today는 루비의 물건, 이런 안타까운 함정이 발생했다

    오늘은 아무 데도 없어요.

    [4] pry(main)> Date.yesterday
    => Wed, 30 Oct 2019
    [5] pry(main)> Date.today
    => Wed, 30 Oct 2019
    [6] pry(main)> Date.tomorrow
    => Fri, 01 Nov 2019
    

    참고 자료


    Ruby 및 Rails에서 Time, Date, DateTime, TimeWithZone의 차이점 - Qita

    스타벅스 계란 샌드위치 드세요. 진정하세요.


    여기 도쿄예요?미국이에요?

    Original by Github issue

    좋은 웹페이지 즐겨찾기