2016-08-05 3 views
-2

У меня есть объект NSDate, который называется reservationDate, и я хочу получить день, месяц и час с даты. Однако я получаю неправильные значения. Как я могу получить эти значения?Как получить день, месяц и час от NSDate в Swift

Значение объекта ReservationDate ReservationDate NSDate2016-08-05 21:00:00 UTC , таким образом, я ожидаю, чтобы получить 5 как день и 21 в час, однако я получаю 6 как день и 0 в час. Должен ли я ожидать чего-то еще?

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

это дает время UTC формиат –

+0

Какой результат вы хотите? Час, отображаемый на настенных часах в Гринвиче (GMT/UTC) или час в зависимости от вашего местоположения? –

ответ

1

Вы не установили часовой пояс. Пожалуйста, назначьте его «UTC».

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

Попробуйте установить часовой пояс с Calendar объекта с 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) 

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

  • Нет связанных вопросов^_^