「Swift Date 日本標準時」
で検索してもString型で出力する方法しか見つからず、Date型で出力する方法が見当たらなかったため、備忘録として書きました。
プログラム
Date(timeIntervalSinceNow: 60 * 60 * 9) // 実行時の時刻を取得
解説
DateはUNIX Time(UTC時間)を取得
Date型は、UNIX時間(UTC時間)を取得します。
Unix timeとは、コンピュータ上での時刻の表現形式の一つです。 Unix Epoch Time(ユニックス・エポック・タイム)などともいいます。 UTCの1970年1月1日0時0分0秒からの経過秒数のことです。なお、日本時間はUTC時間+9時間なので、Unix timeが0のときは、日本時間は、1970年1月1日9時0分0秒となります。
// "2021/2/10/18:28"に実行
print(Date()) // 2021-02-10 09:28:00 +0000
確認のため、実行しましたが日本時間とUNIX時間で9時間の時差がありました。
timeIntervalSinceNow インスタンスプロパティを活用
Date(timeIntervalSinceNow: TimeInterval)
32,400秒(9時間)後
を指定することによって、日本標準時との時差を考慮(現在時刻とTimeIntervalで新しく作成)した日時を取得することができます。
※TimeIntervalは、Double型で秒数を指定
最後に
今回は、UNIX時間と日本時間の時差を考慮し、日本時間を取得しました。この方法より良い方法、もしくは内容に間違いがございましたらコメントでご指導してくださると幸いです。