1. ホーム
  2. swift

[解決済み] Xcode Swiftのam/pmの時刻を24時間形式に変換する

2023-06-18 15:22:34

質問

am/pm形式の時刻を24時間形式の時刻に変換しようとしています。

6:35 PM to 18:35

プレイグラウンドでこのコードを試しましたが、時間だけではうまくいかないようです。 時間を置くと動作しないようです。

let dateAsString = "02/12/15, 6:35 PM"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "HH"
let date = dateFormatter.dateFromString(dateAsString) //returns nil

これを実現する方法をご存知の方はいらっしゃいますか?

どのように解決するのですか?

NSDateFormatter と "h:mm a" のフォーマットを使って日付に変換し、 "HH:mm" のフォーマットを使って文字列に変換し直せばよいのです。これをチェックアウトする 日付の書式設定ガイド を参照してください。

let dateAsString = "6:35 PM"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "h:mm a"
dateFormatter.locale = Locale(identifier: "en_US_POSIX") // fixes nil if device time in 24 hour format
let date = dateFormatter.dateFromString(dateAsString)

dateFormatter.dateFormat = "HH:mm"
let date24 = dateFormatter.stringFromDate(date!)