【发布时间】:2015-07-02 13:05:22
【问题描述】:
我尝试使用此 Swift 代码获取当前日期,不包含小时和分钟:
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitYear | .CalendarUnitMonth | .CalendarUnitDay, fromDate: NSDate())
println(components)
let date = calendar.dateFromComponents(components)
println(date)
println 得到的结果让我有点困惑:
<NSDateComponents: 0x7fb5ad867700>
Calendar Year: 2015
Month: 7
Leap month: no
Day: 2
2015-07-01 22:00:00 +0000
components 是 2015-07-02 但结果 date 是 2015-07-01 22:00:00
我的错误在哪里?
用NSDateFormatter 提到的结果很好:
var dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle
dateFormatter.timeStyle = NSDateFormatterStyle.ShortStyle
println(dateFormatter.stringFromDate(date!))
结果:
July 2, 2015 at 12:00 AM
【问题讨论】:
-
使用 dateformatter 或不调用 dateFormComponents 将其转换为字符串。默认日期对象将在其格式中默认包含时间。
-
我的声誉很低,无法投票给您的答案,但我用复选标记标记了它。
标签: ios swift foundation