2016-08-05 24 views
-2

abholen Ich habe ein NSDate Objekt namens reservationDate und ich möchte Tag, Monat und Stunde vom Datum abholen. Ich bekomme jedoch falsche Werte. Wie kann ich diese Werte erhalten?Wie man Tag, Monat und Stunde von NSDate in Swift

Der Wert des reservationDate Objekts reservationDate NSDate2016-08-05 21:00:00 UTC so erwarte ich 5 als Tag zu bekommen und 21 jedoch als eine Stunde bin ich 6 als Tag und 0 als Stunde erhalten. Sollte ich etwas anderes erwarten?

let unitFlags: NSCalendarUnit = [.Hour, .Day, .Month, .Year] 
let components = NSCalendar.currentCalendar().components(unitFlags, fromDate: reservationDate) 
let day = components.day 
let hour = components.hour 
+0

es gibt UTC-Zeit Format –

+0

Welches Ergebnis möchten Sie tun? Die Stunde, die auf einer Wanduhr in Greenwich (GMT/UTC) oder der Stunde entsprechend Ihrem Standort angezeigt wird? –

Antwort

1

Zeitzone mit Calendar Objekt einstellen Sie haben keine Zeitzone eingestellt. Bitte weisen Sie es "UTC" zu.

NSCalendar.currentCalendar().timeZone = NSTimeZone(name: "UTC")! 
1

Versuchen mit UTC

let unitFlags: NSCalendarUnit = [.Hour, .Day, .Month, .Year] 
let calendar = NSCalendar.currentCalendar() 
calendar.timeZone = NSTimeZone(name: "UTC")! 
let components = calendar.components(unitFlags, fromDate: NSDate()) 
let day = components.day 
let hour = components.hour 
0
let currentDate = NSDate() 
let dateFormatter = NSDateFormatter() 
dateFormatter.dateStyle = NSDateFormatterStyle.FullStyle 
var convertedDate = dateFormatter.stringFromDate(currentDate) 
dateFormatter.dateFormat = "EEEE, MMMM dd, yyyy, HH:mm" 
convertedDate = dateFormatter.stringFromDate(currentDate)