提取 NSDate() 的值

Posted

技术标签:

【中文标题】提取 NSDate() 的值【英文标题】:Extract value of NSDate() 【发布时间】:2019-04-13 07:12:35 【问题描述】:

我正在尝试从今天起 14 天内获取当天的数字。 我想使用这个数字,所以它必须是一个整数值。

但我没有找到提取所需信息的解决方案。所以我的问题是如何在 14 天内获得日期以便我可以使用它?

let daysToAdd = 14
let newDate = Calendar.current.date(byAdding: .day, value: daysToAdd, to: Date())

//This is where I want to get
print ("In 14 days it is \(day).\(month).\(year)

【问题讨论】:

用这段代码你得到 newDate 的价值是什么? @NikunjKumbhani 2019-04-13 08:56:55.911178+0200 【参考方案1】:
let newDate = Calendar.current.date(byAdding: .day, value: 14, to: Date())

let calendar = Calendar.current
print(calendar.component(.year, from: newDate!)) // Year
print(calendar.component(.month, from: newDate!)) // Month
print(calendar.component(.day, from: newDate!)) // Day

【讨论】:

为什么不增加 2 周? @LeoDabus 这个问题被要求添加 Int 天数并提取它,这就是原因。【参考方案2】:

使用Calendar.component 获取这些值:

let cal = Calendar.current
if let newDate = cal.date(byAdding: .day, value: 14, to: Date()) 
    let day = cal.component(.day, from: newDate)
    let month = cal.component(.month, from: newDate)
    let year = cal.component(.year, from: newDate)
    print ("In 14 days it is \(day).\(month).\(year)

【讨论】:

以上是关于提取 NSDate() 的值的主要内容,如果未能解决你的问题,请参考以下文章

为啥 NSDate() 在 CoreData 中存储一个奇怪的值

从 NSDate 中提取日期和时间 - Objective C

Swift:无法将“NSDate”类型的值转换为预期的参数类型“NSDateComponents”

如何在 Swift 中从 NSDate 获取日、月和小时

在核心数据中搜索 NSDate 问题

iPhone - NSDate、NSString 和 Timezones 的奇怪问题