使用 dd-MM-yyyy 将字符串转换为日期 get nil in Xcode 8 in Swift 3.0
Converting String to Date using dd-MM-yyyy get nil in Xcode 8 in Swift 3.0
如果我选择像 let dateString = "2014-01-12"
这样的日期,我将如何将字符串转换为
dateFormatter.dateFormat = "yyyy-MM-dd"
然后按以下格式
dateFormatter.dateFormat = "dd-MM-yyyy"
我在 Xcode 8 在 Swift 3.0
中得到零值
{
let dateString = "2014-01-12"
dateFormatter.locale = Locale(identifier:"ja_JP")
dateFormatter.dateFormat = "dd-MM-yyyy"
print(dateFormatter.date(from:dateString))
}
或
let dateString = "2014-01-12"
dateFormatter.dateFormat = "yyyy-MM-dd"
var s = dateFormatter.date(from: dateString)! as Date
dateFormatter.dateFormat = "dd-MM-yyyy"
s = dateFormatter.date(from: dateString)! as Date
print("SecondDate\(s)")
在 Xcode 7 中工作正常。
如果你想将日期格式 yyyy-MM-dd
转换为 dd-MM-yyyy
那么你的最后一行应该是。
let dateString = "2014-01-12"
dateFormatter.dateFormat = "yyyy-MM-dd"
var s = dateFormatter.date(from: dateString)
dateFormatter.dateFormat = "dd-MM-yyyy"
像这样格式化日期
let dateStr = dateFormatter.string(from: s)
而不是
s = dateFormatter.date(from: dateString)! as Date
您只需更改 DateFormatter
的格式并将其获取为 String
。
需要将日期字符串更改为 "date string" as Date
然后您可以更改为您的特定格式。对于每种格式,您都需要先执行此操作。
您可以使用下面的代码。
Swift 3
extension String {
func changeDate(_ mydate:String) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = DateFormatter.Style.long
dateFormatter.dateFormat = "yyyy-MM-dd"
let convertedDate = dateFormatter.date(from: mydate)
dateFormatter.dateFormat = "dd-MM-yyyy"
let date = dateFormatter.string(from: convertedDate!)
return date
}
}
你可以用这个
let dateString = "2014-01-12"
let dateFormatterNew = DateFormatter()
dateFormatterNew.dateFormat = "yyyy-MM-dd"
let date = dateFormatterNew.date(from: dateString)! as Date
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy"
let dateNew = dateFormatter.string(from: date )
print(dateNew)
这样做
let datestring = "2014-01-12"
let dateF = NSDateFormatter()
dateF.dateFormat = "yyyy-MM-dd"
let firstDate = dateF.dateFromString(datestring)
dateF.dateFormat = "dd-MM-yyyy"
let newDateString = dateF.stringFromDate(firstDate!)
print("NEW DATE FORMAT IS : \(newDateString)")
如果我选择像 let dateString = "2014-01-12"
这样的日期,我将如何将字符串转换为
dateFormatter.dateFormat = "yyyy-MM-dd"
然后按以下格式
dateFormatter.dateFormat = "dd-MM-yyyy"
我在 Xcode 8 在 Swift 3.0
中得到零值{
let dateString = "2014-01-12"
dateFormatter.locale = Locale(identifier:"ja_JP")
dateFormatter.dateFormat = "dd-MM-yyyy"
print(dateFormatter.date(from:dateString))
}
或
let dateString = "2014-01-12"
dateFormatter.dateFormat = "yyyy-MM-dd"
var s = dateFormatter.date(from: dateString)! as Date
dateFormatter.dateFormat = "dd-MM-yyyy"
s = dateFormatter.date(from: dateString)! as Date
print("SecondDate\(s)")
在 Xcode 7 中工作正常。
如果你想将日期格式 yyyy-MM-dd
转换为 dd-MM-yyyy
那么你的最后一行应该是。
let dateString = "2014-01-12"
dateFormatter.dateFormat = "yyyy-MM-dd"
var s = dateFormatter.date(from: dateString)
dateFormatter.dateFormat = "dd-MM-yyyy"
像这样格式化日期
let dateStr = dateFormatter.string(from: s)
而不是
s = dateFormatter.date(from: dateString)! as Date
您只需更改 DateFormatter
的格式并将其获取为 String
。
需要将日期字符串更改为 "date string" as Date
然后您可以更改为您的特定格式。对于每种格式,您都需要先执行此操作。
您可以使用下面的代码。
Swift 3
extension String {
func changeDate(_ mydate:String) -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = DateFormatter.Style.long
dateFormatter.dateFormat = "yyyy-MM-dd"
let convertedDate = dateFormatter.date(from: mydate)
dateFormatter.dateFormat = "dd-MM-yyyy"
let date = dateFormatter.string(from: convertedDate!)
return date
}
}
你可以用这个
let dateString = "2014-01-12"
let dateFormatterNew = DateFormatter()
dateFormatterNew.dateFormat = "yyyy-MM-dd"
let date = dateFormatterNew.date(from: dateString)! as Date
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy"
let dateNew = dateFormatter.string(from: date )
print(dateNew)
这样做
let datestring = "2014-01-12"
let dateF = NSDateFormatter()
dateF.dateFormat = "yyyy-MM-dd"
let firstDate = dateF.dateFromString(datestring)
dateF.dateFormat = "dd-MM-yyyy"
let newDateString = dateF.stringFromDate(firstDate!)
print("NEW DATE FORMAT IS : \(newDateString)")