まずはHerokuのタイムゾーン設定を変更
プロジェクトファイルのディレクトリで、以下コマンドを叩きます
heroku config:add TZ=Asia/Tokyo
以下のような記述が出たらok
% heroku config:add TZ=Asia/Tokyo
Setting TZ and restarting ⬢ puffshare... done, v64
TZ: Asia/Tokyo
LANGも変更
heroku config:add LANG=ja_JP.UTF-8
heroku側にSSH
heroku run bash
コンソールで確認してみてその日の日付になってたら完了です!
% heroku console
Running console on ⬢ puffshare... up, run.6216 (Free)
Loading production environment (Rails 6.1.3.1)
irb(main):001:0> Time.now
=> 2021-05-15 14:43:04.20104537 +0900
irb(main):001:0> Date
Sat May 15 14:44:24 JST 2021
うん、JSTになりました!
Rails側の設定をしていく
config/application.rbに追記する
config/application.rb
~(省略)~
module App
class Application < Rails::Application
~(省略)~
# Don't generate system test files.
config.generators.system_tests = nil
#以下を追記
config.time_zone = "Tokyo"
config.active_record.default_timezone = :local
end
end
created_atの後にstrftimeを設定していく
()で指定するのはよしなに。
nantoka.erb
<%= letter.created_at.strftime("%m月%d日%Y年 %H:%M") %>
こちらの出力だと04月
strftimeに指定できる書式は以下のような感じらしい
書式 | 返り値 | 説明 |
---|---|---|
%Y | 2019 | 西暦を4桁の数で取得する※西暦1年は「0001」 |
%m | 01 | 月を必ず2桁の数字で取得する(01-12) |
%-m | 1 | 月を1桁か2桁の数字で取得する(1-12) |
%d | 01 | 日付を必ず2桁で取得する(01, 02 ... ) |
%-d | 1 | 日付を1桁か2桁で取得する(1, 2 ... 10, 11 ...) |
%H | 12 | 24時間制の時刻を必ず2桁で取得する(00-23) |
%-H | 12 | 24時間制の時刻を1桁か2桁で取得する(0-23) |
%I | 12 | 12時間制の時刻を1桁か2桁で取得する(1-12) |
%M | 00 | 分を取得する(00-59) |
%S | 00 | 秒を取得する(00-60)※60はうるう秒 |
%A | 曜日名 | |
%a | 曜日名(短縮形) |
参考
Thank you:))