2016-04-17 3 views
0

У меня есть выбор даты с режимом, установленным на Date (меня интересуют только День, Месяц, Год). Дата устанавливается при viewDidLoad поДата установки датпикера с учетом летнего времени Swift

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

Это кажется нормально ... но ...

хранить дату в классе Singleton, который имеет var dateForLog: NSDate и в другом ViewController спасу эту дату в сердечнике данные ...

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

то в конечном итоге я отображать дату в TableViewCell ...

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

cell.lb_LogDate.text = logDateString 

К сожалению, это не учитывает летнее время ... например.

если DatePicker установлен на 14 января 2016 года дата в tableviewcell является Ян 14,2016

если DatePicker Поставим на 14 апреля 2016 года дата в tableviewcell является апрель , 2016. Если я поместите точку останова. Я вижу, что, хотя циферблаты установлены до 14 апреля 2016 года, датаForLog показывает 2016-04-13 23:00:00 +0000

Как остановить это?

+0

попробуйте добавить «formatter.locale = NSLocale.systemLocale()» –

+0

После выполнения некоторых более поисков я наткнулся это, вероятно, решит мою проблему .... http: //stackoverflow.com/questions/26189656/how-can-i-set-an-nsdate-object-to-midnight ... Проблема, которую я сейчас имею в том, что опубликованный ответ дать мне член экземпляра «cal» не может быть использован для типа ViewController – Mych

+0

Все отсортированные ... Я использовал решение, которое я нашел выше ... Мне просто пришлось поместить код внутри функции, а не прямо в класс. – Mych

ответ

Смежные вопросы