Swift で Cloud Firestore の日付を取得する(Timestamp)

Firestore の timestamp 取得に手間取ったのでメモ。

環境

  • Xcode 10.2.1
  • Swift 5.0.1

 

// キュメントを取得
docRef.getDocuments() { (querySnapshot, err) in
            
  if let err = err {
    
    // error
  }
  else {
    
    // 1. timestampを取得
    let timestamp: Timestamp = document.get("createdAt") as! Timestamp
    print("1. timespamp: \(timestamp)")
    
    // 1. timespamp: FIRTimestamp: seconds=1559798231 nanoseconds=867000000>
    
    // 2. 日付を取得
    let dateValue = timestamp.dateValue()
    print("2. dateValue: \(dateValue)")
    
    // 2. dateValue: 2019-06-06 05:17:11 +0000
    
    // 3. 日付フォーマットも変更
    let f = DateFormatter()
    f.locale = Locale(identifier: "ja_JP")
    f.dateStyle = .long
    f.timeStyle = .none
    let date = f.string(from: dateValue)
    print("3. date: \(date)")
    
    // 3. date: 2019年6月6日
      
  }
}