NSDateComponents 不返回日期

Posted

技术标签:

【中文标题】NSDateComponents 不返回日期【英文标题】:NSDateComponents doesn't return date 【发布时间】:2015-05-11 05:33:41 【问题描述】:

我正在尝试从 2 个变量中获取数据:hours = "08"minutes = 30。我是这样做的:

let calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)
let components = NSDateComponents()
components.hour = hours.toInt()!
components.minute = minutes.toInt()!
let neededDate = components.date

但是neededDate 是零。也许我做错了什么?

【问题讨论】:

【参考方案1】:

如果你想在这个方向使用 NSDateComponents 你必须设置日历。

let calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)!
let components = NSDateComponents()

components.calendar = calendar // Add this line

components.hour = hours.toInt()!
components.minute = minutes.toInt()!
let neededDate = components.date

【讨论】:

【参考方案2】:

您从带​​有组件的日历中获取日期:

let neededDate = calendar.dateFromComponents(components)

【讨论】:

【参考方案3】:

您需要更改获取neededDate 值的方式。现在你正在这样做let neededDate = components.date,它是nil,因为components.date从未被分配任何值。所以你需要的代码如下。

let date = calendar.dateFromComponents(components)!

希望这会有所帮助!

【讨论】:

以上是关于NSDateComponents 不返回日期的主要内容,如果未能解决你的问题,请参考以下文章

NSDateComponents weekOfYear 返回错误的日期

将当前日期与日期选择器目标-C 的后一天和前一天相加

从 NSDateComponents 创建的 NSDate 不正确?

2 NSDateComponents - 是同一周吗?

NSDateComponents:如何将已弃用的 NSWeekCalendarUnit 替换为计算周开始日期?

NSDateComponents - 结合日期和时间会损失 1 小时?