2016-08-05 51 views
-2

我有一個NSDate對象叫做reservationDate,我想從日期中獲取日,月和小時。但是,我收到錯誤的價值。我如何獲得這些值?如何從NSDate中獲取日,月和小時

的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

?格林威治(格林威治標準時間/世界標準時間)掛鐘上顯示的小時數或根據您的位置顯示的小時數? –

回答

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)