Ios 斯威夫特-获得下一个日期
我正在尝试编写一个函数,它接受一个字符串(格式为“dd-MM-yyyy”),并返回给定字符串后的第二天作为参数 例如:Ios 斯威夫特-获得下一个日期,ios,swift,xcode,Ios,Swift,Xcode,我正在尝试编写一个函数,它接受一个字符串(格式为“dd-MM-yyyy”),并返回给定字符串后的第二天作为参数 例如: let nextDay = getNextDay("31 12 2016") print(nextDay) 将打印: 01 01 2017 有人能告诉我怎么做吗?谢谢以下是可能对您有所帮助的代码片段 //Call method like this convertNextDate(dateString: "31 12 2016") // Method
let nextDay = getNextDay("31 12 2016")
print(nextDay)
将打印:
01 01 2017
有人能告诉我怎么做吗?谢谢以下是可能对您有所帮助的代码片段
//Call method like this
convertNextDate(dateString: "31 12 2016")
// Method is here
func convertNextDate(dateString : String){
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MM yyyy"
let myDate = dateFormatter.date(from: dateString)!
let tomorrow = Calendar.current.date(byAdding: .day, value: 1, to: myDate)
let somedateString = dateFormatter.string(from: tomorrow!)
print("your next Date is \(somedateString)")
}
另一种方法是创建扩展,它就在这里
extension String {
func convertToNextDate(dateFormat: String) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = dateFormat
let myDate = dateFormatter.date(from: self)!
let tomorrow = Calendar.current.date(byAdding: .day, value: 1, to: myDate)
return dateFormatter.string(from: tomorrow!)
}
}
用法
注意:您可以使用所需的日期格式,只是要确保它是合适的。如果您在使用此框架之前没有在swift中使用日期:-这里还有很多答案,为了解决使用日期的问题,只需使用搜索功能:-)+1来使用
.date(通过添加:,值:,到:)
。许多关于堆栈溢出的示例错误地计算了第二天的时间,添加了24*60*60
seconds。感谢@robotcat的支持
print("31 12 2016".convertToNextDate(dateFormat: "dd MM yyyy"))
class DateHelper
{
lazy var formatter:DateFormatter = {
let formatter = DateFormatter()
formatter.dateFormat = "dd MM yyyy"
return formatter
}()
lazy var dateComponents:DateComponents = {
var dateComp = DateComponents()
dateComp.day = 1
return dateComp
}()
func getNext(dateString:String) -> String?
{
if let date = self.formatter.date(from: dateString),
let nextDate = Calendar.current.date(byAdding: self.dateComponents, to: date)
{
return self.formatter.string(from: nextDate)
}
return nil
}
}
DateHelper().getNext(dateString: "31 12 2016")