У меня есть выбор даты с режимом, установленным на 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
Как остановить это?
попробуйте добавить «formatter.locale = NSLocale.systemLocale()» –
После выполнения некоторых более поисков я наткнулся это, вероятно, решит мою проблему .... http: //stackoverflow.com/questions/26189656/how-can-i-set-an-nsdate-object-to-midnight ... Проблема, которую я сейчас имею в том, что опубликованный ответ дать мне член экземпляра «cal» не может быть использован для типа ViewController – Mych
Все отсортированные ... Я использовал решение, которое я нашел выше ... Мне просто пришлось поместить код внутри функции, а не прямо в класс. – Mych