【发布时间】:2015-09-15 03:32:18
【问题描述】:
我看到这篇文章是针对其他语言的,但不是针对 swift 的。我有一个以2015-08-31 21:36:00 +0000 格式保存的日期,我可以使用下面的代码提取日、月、年和工作日以生成Monday, August 31, 2015。当我尝试使用时:
let hourInt = components.hour
var hourString = String(hourInt)
它打印四个小时的差异。在这种情况下,“17”为“21”。我如何能
显示为9:36 P.M.?
let flags: NSCalendarUnit = NSCalendarUnit.CalendarUnitMinute | NSCalendarUnit.CalendarUnitHour | NSCalendarUnit.CalendarUnitDay | NSCalendarUnit.CalendarUnitWeekday | NSCalendarUnit.CalendarUnitMonth | NSCalendarUnit.CalendarUnitYear
let date = NSDate()
let dateFormatter: NSDateFormatter = NSDateFormatter()
let components = NSCalendar.currentCalendar().components(flags, fromDate: array.date)
let weekday = components.weekday
let weekdays = dateFormatter.weekdaySymbols
let weekdayString = weekdays[weekday-1] as! String
let month = components.month
let months = dateFormatter.monthSymbols
let monthString = months[month-1] as! String
let dayInt = components.day
var dayString = String(dayInt)
let year = components.year
let yearString = String(year)
println(weekdayString + ", " + monthString + " " + dayString + ", " + yearString)
【问题讨论】:
-
使用 NSDateFormatter,记得设置时区。 NSDates 是绝对时间点,不知道时区。见stackoverflow.com/questions/24255020/…
标签: swift nsdate nsdateformatter