如果我选择let dateString = "2014-01-12"
之类的日期,我该如何将字符串转换为
dateFormatter.dateFormat = "yyyy-MM-dd"
然后采用以下格式
dateFormatter.dateFormat = "dd-MM-yyyy"
我在Swift 3.0中的Xcode 8中获得了nil值
{
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中,它可以正常工作。
答案 0 :(得分:2)
如果您想将日期格式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
。
答案 1 :(得分:2)
需要将日期字符串更改为"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
}
}
答案 2 :(得分:1)
您可以使用此
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)
答案 3 :(得分:0)
这样做
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)")