2016-04-17 8 views
0

Ich habe eine Datumsauswahl mit dem Modus auf Datum eingestellt (Ich bin nur an Tag, Monat, Jahr interessiert). Das Datum wird während viewDidLoad gesetzt durchDatum für Datumsauswahl unter Berücksichtigung der Sommerzeit einstellen Swift

let currentDate = NSDate() 
    dp_MainDatePicker.date = currentDate 
    dp_MainDatePicker.maximumDate = currentDate 

Dies scheint OK ... aber ...

ich das Datum in einer Singleton-Klasse speichern, die var dateForLog: NSDate und in einem anderen Viewcontroller hat werde ich dieses Datum Kern speichern Daten ...

newMileageLog.setValue(Data.sharedData.dateForLog, forKey: "tripDate") 

dann schließlich zeige ich das Datum in einem TableViewCell ...

//format date as medium style date 
let formatter = NSDateFormatter() 
formatter.dateStyle = .MediumStyle 
let logDateString = formatter.stringFromDate(mileageLog.tripDate!) 

cell.lb_LogDate.text = logDateString 

Leider berücksichtigt dies nicht die Sommerzeit ... z.

wenn die Datepicker bis 14. Januar 2016 das Datum in der tableviewcell ist 14,2016 Jan

gesetzt, wenn picker uns 14. April 2016 das Datum in der tableviewcell eingestellt ist April 2016. Wenn ich Platzieren Sie einen Haltepunkt Ich kann sehen, dass, obwohl die Wahlschalter auf 14 Apr 2016 eingestellt sind, das dateForLog zeigt 2016-04-13 23:00:00 +0000

Wie kann ich dies verhindern?

+0

Versuchen Sie, „formatter.locale = NSLocale.systemLocale()“ –

+0

Nach etwas mehr tun Suche stieß ich auf das würde wahrscheinlich mein Problem lösen .... http: //stackoverflow.com/questions/26189656/how-can-i-set-annsdate-object-to-midnight ... Das Problem, das ich jetzt habe, ist das die veröffentlichte Antwort gibt mir eine Instanz Mitglied 'cal' kann nicht auf den Typ ViewController verwendet werden – Mych

+0

Alles sortiert ... Ich habe die Lösung, die ich oben gefunden ... Ich musste nur den Code innerhalb einer Funktion statt direkt in eine Klasse. – Mych

Antwort

Verwandte Themen