請幫我獲取當地日期和一天的開始,我的意思是午夜。爲了得到當地的日期我使用下面的代碼,但我不認爲這是正確的Swift獲取本地日期實例
var calendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)
calendar!.timeZone = NSTimeZone.localTimeZone()
let components = NSDateComponents()
components.second = NSTimeZone.localTimeZone().secondsFromGMT
let today = calendar!.dateByAddingComponents(components, toDate: NSDate(), options: nil)
但我不能讓這一天的午夜,它不斷返回時間21.00
var comps = calendar!.components(NSCalendarUnit.YearCalendarUnit | .MonthCalendarUnit | .DayCalendarUnit | .HourCalendarUnit | .MinuteCalendarUnit | .SecondCalendarUnit, fromDate: today!)
comps.hour = 0
comps.minute = 0
comps.second = 0
let startToday = calendar!.dateFromComponents(comps)!
即使此退貨21.00
calendar!.startOfDayForDate(today)
這看起來像另一個「NSDate的描述總是使用GMT」的副本。請參閱http://stackoverflow.com/questions/8466744/getting-date-from-nsdate-date-off-by-a-few-hours。 –
請注意,根據您當地的時區,「startToday」設置爲午夜,格林威治可能是21:00。 –
電腦位置或當地日期的任何地方的當地日期?而對於一天的開始,你想要什麼時區的結果呢?世界標準時間? – MirekE