Laravelでバッチ処理を作成後、Kernelファイルで時間を設定しても指定した時間にバッチ処理が動かなかった。
対処法
config/app.phpファイルのtimezoneが日本時間になっているか確認する。
詳細
'timezone' => 'UTC',
config/app.phpファイルのタイムゾーンの箇所を見ると上記のように設定されていた。
UTCとは協定世界時と言い、世界で基準となる時間のことらしい。
このUTCに+9時間すると日本時間になる。
このままの設定だと、仮に日本時間で「毎日18時に実行」と設定していても、実際にはUTCの18時(日本時間の27時=翌朝3時)に動くことになる。
このtimezoneを
'timezone' => 'Asia/Tokyo',
というように書き換えた。
このように設定することで、Laravelが日本時間で日時を扱うようになり、スケジュールも日本時間で動くようになる。
その後
php artisan config:clear
を実行してキャッシュをクリアしたことで、設定した時間にバッチ処理を動かすことができるようになった。