1
Я знаю, что следующий код возвращает время по Гринвичу, и мы в настоящее время GMT + 1. Я пытаюсь адаптировать мой код, чтобы вернулась правильная дата. Если я просто добавлю 1 час кода, он не сработает, когда GMT + 1 вернется к GMT. Есть идеи?Не удается получить заданную дату при использовании NSDateComponents
let gregorian = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
gregorian.timeZone = NSTimeZone.localTimeZone()
var unitFlags : NSCalendarUnit = NSCalendarUnit.CalendarUnitYear | NSCalendarUnit.CalendarUnitWeekOfYear | NSCalendarUnit.CalendarUnitWeekday
gregorian.firstWeekday = 2
var components:NSDateComponents = gregorian.components(unitFlags, fromDate: date)
components.weekday = 2
components.hour = 0
components.minute = 0
components.second = 0
let resultDate:NSDate = gregorian.dateFromComponents(components)!
println("The resultDate is \(resultDate)")
println() NSDate всегда печатает дату в GMT (что не делает ее «неправильной»). Это похоже на ту же проблему, что и в предыдущем вопросе. - Чтобы распечатать дату в соответствии с местным часовым поясом, вы должны преобразовать ее обратно в строку с помощью NSDateFormatter. –
Спасибо, Мартин, я беру две даты и создаю отчет о значениях, которые находятся между двумя датами в формате pdf. Я знаю, что я могу использовать NSDateFormatter для преобразования дат в строковые значения. Я просто не могу утверждать, что даты правильные. – Tom