📌 基本的な使い方
let now = Date()
let formatter = DateFormatter()
formatter.dateStyle = .medium
formatter.timeStyle = .short
formatter.locale = Locale(identifier: "ja_JP")
let formatted = formatter.string(from: now)
print(formatted) // 例: 2025/07/24 21:45
このコードでは、現在の日時を日本語の形式で表示しています。`DateFormatter`を使うことで、日付のフォーマットを簡単に変更できます。
Date | Locale🎨 カスタムフォーマット指定
dateFormat を指定することで、独自のフォーマットで日付文字列を作成できます。
formatter.dateFormat = "yyyy年MM月dd日 HH:mm"
let dateString = formatter.string(from: now)
print(dateString) // 2025年07月24日 21:45
このコードでは、年・月・日・時間を日本語の形式で表示しています。
📅 よく使うフォーマット
yyyy:年(4桁)MM:月(2桁)dd:日(2桁)HH:時間(24時間制)mm:分
🔄 文字列からDateに変換
formatter.dateFormat = "yyyy/MM/dd"
let str = "2025/07/24"
if let date = formatter.date(from: str) {
print(date) // Date型に変換された値
}
このコードでは、指定したフォーマットの文字列を Date 型に変換しています。フォーマットが一致しないと変換は失敗します。
変換に失敗した場合は、nil が返ります。
そのため、変換処理は必ず if let でラップすることをおすすめします。
🌐 ロケールとタイムゾーン
formatter.locale = Locale(identifier: "en_US")
formatter.timeZone = TimeZone(identifier: "Asia/Tokyo")
ロケールを指定することで、日付や曜日の表記方法が変わります。タイムゾーンを指定することで、異なる地域の時間に合わせた表示が可能です。
Locale | TimeZone🌍 ロケールとタイムゾーンの設定
- locale:日付や曜日の表記方法に影響(例:「木」か「Thu」か)
- timeZone:タイムゾーンを指定(UTC, JST など)
⏱ よく使うフォーマット例
formatter.dateFormat = "yyyy-MM-dd" // 2025-07-24
formatter.dateFormat = "HH:mm:ss" // 21:45:30
formatter.dateFormat = "yyyy/MM/dd (E)" // 2025/07/24 (木)
formatter.dateFormat = "MMM d, yyyy" // Jul 24, 2025