【Swift】DateFormatterで24時間表示できない解決法

【Swift】DateFormatterで24時間表示できない解決法

実行環境

Swift5.6.1
Xcode14.0
macOS12.6

内容

DateFormatterを利用して、formatを “HH:MM” にしても24時間表示できませんでした。
“08:12 PM” とかAMやPMがついてしまいました。

原因

iPhoneの端末設定が24時間表示か、12時間表示かで、”HH:MM” がそれ通り表示できるか変わってくるみたいです。
例えば、午後8時00分の場合は
24時間表示に設定している → “20:00”
12時間表示に設定している → “08:00 PM”
と表示されるみたいです。

解決策

formatterで宣言する際に、下の1行を追加させることで、
私の環境では24時間表示させることができました。

formatter.locale = NSLocale.system


理由を深く追求しようと思いましたが、僕の力では理由までは理解できませんでした。
深く気になる方は、下の公式ドキュメントをどうぞ。
>> localのApple公式ドキュメント
>> NSLocalのApple公式ドキュメント

まとめ

ということで、本記事はDateFormatterで24時間表示できない解決法をまとめました。
アドバイスや改善などあれば本記事の最後のコメント欄からお願いします。
最後まで読んでいただきありがとうございました!

作業効率がグッと上がるPC道具

間違いなしのSwift書籍2冊



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です