2017-01-20 1 views
2

Ich möchte das aktuelle Datum als eine Zeichenfolge erhalten, die Granularität bis Stunden/Minuten/Sekunden anzeigt. Der folgende Code zeigt jedoch nur "Freitag 20. Januar 2017 ". Ich habe versucht mit einem DateStyle von keiner, .medium, .long, .full. Sie zeigen nur eine Granularität bis zum nächsten Tag, wie kann ich feinere Granularität als das bekommen?Datumsformatierung mit .long oder .full, die nicht zu Stunden/Minuten/Tagen/Sekunden führt

let dateFormatter  = DateFormatter() 
    dateFormatter.dateStyle = .full 
    let now     = Date() 
    let dateString   = dateFormatter.string(from: now) 

Antwort

1

Sie müssen auch eine timeStyle setzen. Beispiel (German locale):

let dateFormatter  = DateFormatter() 
dateFormatter.dateStyle = .full 
dateFormatter.timeStyle = .medium 
let now     = Date() 
let dateString   = dateFormatter.string(from: now) 

print(dateString) // Freitag, 20. Januar 2017 um 18:39:04 

Alternativ Satz eine dateFormat. Beispiel:

let dateFormatter  = DateFormatter() 
dateFormatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "EEEE ddMMMyyyy HHmmss", 
                options: 0, locale: Locale.current) 
let now     = Date() 
let dateString   = dateFormatter.string(from: now) 

print(dateString) // Freitag, 20. Jan. 2017, 18:46:36 
0

Sie sind sehr nah dran! Sie müssen auch die DateFormatter eine timeStyle geben.

let dateFormatter  = DateFormatter() 
dateFormatter.dateStyle = .full 
dateFormatter.timeStlye = .full // options of short, medium, long, and full 
let now     = Date() 
let dateString   = dateFormatter.string(from: now) 

.full aus dem obigen Druck Friday, January 20, 2017 at 12:40:23 PM Eastern Standard Time