
DateFormatter()を使ってDate型のままフォーマットだけ変更したい
Swift
1 let date = Date() 2 let formatter = DateFormatter() 3 4 formatter.dateFormat = DateFormatter.dateFormat(fromTemplate: dateFormat, options: 0, locale: Locale(identifier: "ja_JP")) 5 let dateDate = formatter.date(from: date) //理想です。これだとエラーになります。
調べてみるとString型に変更されて利用されていることが多く、このDate型のままで、フォーマットだけ変更する方法が見当たりませんでした。
初歩的すぎて使っていないだけでしょうか?
やりたいことは「date型のデータをフォーマットだけ変更して使う」です。
ご存知の方がいらっしゃいましたら、コメントください!!

> やりたいことは「date型のデータをフォーマットだけ変更して使う」です。
「フォーマット」はもう少し具体的にはどういうことを意味していますか?
---
> A Date value encapsulate a single point in time, independent of any particular calendrical system or time zone. Date values represent a time interval relative to an absolute reference date.
> (機械翻訳)日付値は、特定の暦法やタイムゾーンに依存しない単一の時点をカプセル化したものである。日付の値は、絶対的な基準日からの相対的な時間間隔を表します。
> https://developer.apple.com/documentation/foundation/date
```swift
let date = Date()
print(date) // 2022-12-09 23:28:23 +0000 (出力されたのは多分descriptionなので?String型)
print(date.description) // 2022-12-09 23:28:23 +0000 (String型)
print(date.timeIntervalSince1970) // 1670628503.1469111 (Double型)
```
Date型自体はフォーマットという考えはないのかなと思います。
それをString型にするからフォーマットという考えがあるのかなと思います。
ですので、Date型のままでしたら「フォーマット」というのが何を意味しているのか確認してみました。
各型の役割を理解していなささそうなので、簡単に説明します。
Date 特定の日時を表す(フォーマットはない)
String 特定の文字列を表す
DateFormatter Dateを特定のフォーマットのStringに変換する、または特定のフォーマットのStringをDateに変換するもの
とても大きな勘違いをしていました!
ありがとうございます!理解しました。

回答1件
あなたの回答
tips
プレビュー