前提・実現したいこと
FireStoreからTimestampのデータを取り出したのですが、
どうしてもDateに変換して画面に表示することができません。
すいませんが、どなたかご教示ください。
発生している問題・エラーメッセージ
The supplied formatter <NSDateFormatter: 0x6000011e93e0> returned `nil` when invoked with <FIRTimestamp: seconds=1589727600 nanoseconds=0>. An empty string will be used instead.
該当のソースコード
SwiftUI
1 2//FireStoreからTimestampを含んだデータを取得 3class Observer:ObservableObject { 4 @Published var status = [Entity]() 5 6 init() { 7 let db = Firestore.firestore() 8 db.collection("Theme").addSnapshotListener{(snap, error) in 9 if error != nil { 10 print("(String(describing: error?.localizedDescription))") 11 } 12 for i in snap!.documentChanges { 13 let id = i.document.documentID 14 let startDate = i.document.get("startDate") as? Timestamp ?? Timestamp(date: Date()) 15 let endDate = i.document.get("endDate") as? Timestamp ?? Timestamp(date: Date()) 16 ... 17 18 self.status.append(Entity(id: id, startDate: startDate, endDate: endDate,...)) 19 } 20 } 21 } 22 } 23} 24 25//Viewに日時を表示(しかし、なにも表示されない) 26struct SomeView: View { 27 @ObservedObject var observed = Observer() 28 var dateFormat: DateFormatter { 29 let dformat = DateFormatter() 30 dformat.dateStyle = .medium 31 dformat.timeStyle = .medium 32 dformat.dateFormat = "yyyy/MM/dd HH:mm" 33 dformat.timeZone = TimeZone(identifier: "Asia/Tokyo") 34 return dformat 35 } 36 37 var body: some View { 38 Text("(self.observed.status.startDate.dateValue(), formatter:dateFormat)") 39 Text("(self.observed.status.endDate.dateValue(), formatter:dateFormat)") 40 } 41}
dateValue メソッドでは駄目ですか?
https://firebase.google.com/docs/reference/swift/firebasefirestore/api/reference/Classes/Timestamp#datevalue
>var body: some View {
> Text("\(self.observed.status.startDate.dateValue(), formatter:dateFormat)")
> Text("\(self.observed.status.endDate.dateValue(), formatter:dateFormat)")
> }
このようなコードでTimestamp型である「startDate」「endDate」をdateValueで変換してみたのですがダメでした。何か他のコードが間違っているのでしょうか。
すいません、.dateValue()を記載していたViewが別のViewでした!(本ページには書いていないView)
普通に正しいViewに.dateValue()入れたらできました。
ご迷惑おかけしました。
回答1件
あなたの回答
tips
プレビュー