iOS Swift - Obtenir l'Heure Locale Actuelle et la Date d'Horodatage

Je suis en train de faire une fréquentation de l'app et je suis vraiment confus au sujet de la date et de l'heure dans iOS et Firebase.

J'utilise date Clé, c'est la structure de mon Firebase base de données.

--Employees
  --Unique_ID
     --Details
          Name: John
     --Attendance
          --dateToday
              Timein: 8:00 AM
              Timeout: 5:00 PM
              BreakStart: 12:00 PM
              BreakFinish: 1:00 PM

C'est mon code pour obtenir la date timestamp j'ai utilisé comme Clé

 override func viewDidLoad() {
     super.viewDidLoad()

     let now = NSDate()
     let nowTimeStamp = self.getCurrentTimeStampWOMiliseconds(dateToConvert: now)

     //I save this dateToday as Key in Firebase
     dateToday = nowTimeStamp
}


func getCurrentTimeStampWOMiliseconds(dateToConvert: NSDate) -> String {
    let objDateformat: DateFormatter = DateFormatter()
    objDateformat.dateFormat = "yyyy-MM-dd"
    let strTime: String = objDateformat.string(from: dateToConvert as Date)
    let objUTCDate: NSDate = objDateformat.date(from: strTime)! as NSDate
    let milliseconds: Int64 = Int64(objUTCDate.timeIntervalSince1970)
    let strTimeStamp: String = "\(milliseconds)"
    return strTimeStamp
}

Mais quand je la convertir à date je obtenir 2017-09-22 16:00:00 +0000, ce qui est faux, car il est 23 septembre, dans ma position.

Quel est le code à utiliser de sorte que je peux obtenir la date du jour heure et le time timestamp?

Il est correct si votre fuseau horaire est UTC+0800. print affiche Dates toujours en UTC. Et 2017-09-22 16:00:00 +0000 et 2017-09-23 00:00:00 +0800 est exactement le même point dans le temps. Par la route: Ne pas utiliser NSDate dans Swift 3 à toutes.

OriginalL'auteur TSM | 2017-09-23