【Ruby】タイムゾーンを変更する
2022/09/10
GitHub Actions で時間を扱うRuby スクリプトを動かしたい
そのためには、GitHub Actions のタイムゾーンは UTC になっているので、タイムゾーンを変更する必要がある
Ruby はシステムのタイムゾーンに依存する
app.rb
puts Time.now
$ ruby app.rb
2022-09-10 20:14:08 +0900
環境変数 TZ を指定してタイムゾーンを変更する
システムのタイムゾーンを変更するか、環境変数 TZ で指定してあげれば変更できる
環境変数で指定するのが手軽そう
$ TZ=UTC ruby app.rb
2022-09-10 11:14:33 +0000
$ TZ=America/New_York ruby app.rb
2022-09-10 07:14:46 -0400
GitHub Actions で日本時間で Ruby スクリプトを実行する
GitHub Actions では、上記の実行時に TZ を指定するやり方と、env で TZ を指定するやり方ができる
実行時に TZ を指定
jobs:
ruby:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.1
- name: Run script
run: TZ=Asia/Tokyo ruby app.rb
env で TZ を指定
jobs:
ruby:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.1
- name: Run script
env:
TZ: "Asia/Tokyo"
run: ruby app.rb
参考
#Ruby と #Rails の Time や Time.zone の扱いががマジで分からないし混沌としてるのでちょっとだけ整理したい。 - Qiita