如何在 Swift 中从 NSDate 获取日、月和小时
Posted
技术标签:
【中文标题】如何在 Swift 中从 NSDate 获取日、月和小时【英文标题】:How to fetch day, month and hour from NSDate in Swift 【发布时间】:2016-08-05 10:05:55 【问题描述】:我有一个名为 reservationDate 的 NSDate
对象,我想从日期中获取 日、月和小时。但是,我得到了错误的值。我怎样才能得到这些值?
reservationDate 对象的值
预订日期NSDate
2016-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
【问题讨论】:
它给出 UTC 时间格式 你想要什么结果?格林威治 (GMT/UTC) 挂钟上显示的小时数还是您所在位置的小时数? 【参考方案1】:您尚未设置时区。请将其指定为“UTC”。
NSCalendar.currentCalendar().timeZone = NSTimeZone(name: "UTC")!
【讨论】:
【参考方案2】:尝试使用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
【讨论】:
【参考方案3】: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)
【讨论】:
以上是关于如何在 Swift 中从 NSDate 获取日、月和小时的主要内容,如果未能解决你的问题,请参考以下文章
如何从 NSTimeInterval 获取十分之一秒、百分之一秒等
如何在 Swift beta 3 中从 UIImagePickerControllerDelegate 获取 UIImage?