如何将 Int 添加到 NSDate?
How to add an Int to a NSDate?
我目前正在获取 JSON 格式的日期数据:
Date = "2016-07-21T18:32:24.347Z"
我需要能够添加一个 Int 或表示分钟的浮点数(总共 60 分钟)
我该怎么做?
因此,您可以通过一百万种不同的方式来执行此操作,但这可能不是您在这里寻找的。玩这些东西的最佳方式是在操场上,这样您就可以看到代码的更改如何影响最终结果。
所以首先你需要一个可以接受字符串作为参数的函数。
func dateFromJSON(dateString: String?) -> NSDate? {}
此函数将接受我们的 string
和 return 我们 NSDate
然后我们需要一个日期格式化程序,有许多不同的方法可以格式化日期,您可以在此处查看有关它们的文档 NSDateFormatter Documentation
这里有一个格式化程序的例子 "yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"
你可以很快看到不同的部分指的是一个日期的不同部分。 IE 中的 yyyy
是年份,在这种情况下会给我们类似 2016
的信息。如果是 yy
我们只会得到 16
.
初始化 dateFormatter,然后应用我们的格式。
您还应该进行一些检查以确保您的代码安全。所以它应该是这样的。
func dateFromWebJSON(dateString: String?) -> NSDate? {
guard let dateString = dateString else {
return nil
}
let formatter = NSDateFormatter()
let date = ["yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"].flatMap { (dateFormat: String) -> NSDate? in
formatter.dateFormat = dateFormat
return formatter.dateFromString(dateString)
}.first
assert(date != nil, "Failed to convert date")
return date
}
所以现在我们可以调用
let time = dateFromWebAPIString(date)
print(time) // Jul 21, 2016, 12:32 PM
现在要添加时间,您必须记住 1 NSTimeInterval 是 1 秒。所以做一些基础数学
let min = 60
let hr = 60 * min
然后我们可以根据需要添加多少时间
let newTime = time?.dateByAddingTimeInterval(NSTimeInterval(20 * min))
print(newTime) // "Jul 21, 2016, 12:52 PM"
20 分钟后。希望这有帮助
我目前正在获取 JSON 格式的日期数据:
Date = "2016-07-21T18:32:24.347Z"
我需要能够添加一个 Int 或表示分钟的浮点数(总共 60 分钟)
我该怎么做?
因此,您可以通过一百万种不同的方式来执行此操作,但这可能不是您在这里寻找的。玩这些东西的最佳方式是在操场上,这样您就可以看到代码的更改如何影响最终结果。
所以首先你需要一个可以接受字符串作为参数的函数。
func dateFromJSON(dateString: String?) -> NSDate? {}
此函数将接受我们的 string
和 return 我们 NSDate
然后我们需要一个日期格式化程序,有许多不同的方法可以格式化日期,您可以在此处查看有关它们的文档 NSDateFormatter Documentation
这里有一个格式化程序的例子 "yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"
你可以很快看到不同的部分指的是一个日期的不同部分。 IE 中的 yyyy
是年份,在这种情况下会给我们类似 2016
的信息。如果是 yy
我们只会得到 16
.
初始化 dateFormatter,然后应用我们的格式。
您还应该进行一些检查以确保您的代码安全。所以它应该是这样的。
func dateFromWebJSON(dateString: String?) -> NSDate? {
guard let dateString = dateString else {
return nil
}
let formatter = NSDateFormatter()
let date = ["yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"].flatMap { (dateFormat: String) -> NSDate? in
formatter.dateFormat = dateFormat
return formatter.dateFromString(dateString)
}.first
assert(date != nil, "Failed to convert date")
return date
}
所以现在我们可以调用
let time = dateFromWebAPIString(date)
print(time) // Jul 21, 2016, 12:32 PM
现在要添加时间,您必须记住 1 NSTimeInterval 是 1 秒。所以做一些基础数学
let min = 60
let hr = 60 * min
然后我们可以根据需要添加多少时间
let newTime = time?.dateByAddingTimeInterval(NSTimeInterval(20 * min))
print(newTime) // "Jul 21, 2016, 12:52 PM"
20 分钟后。希望这有帮助