如何将字符串日期转换为 NSDate?
How can I convert string date to NSDate?
我想将 2016-03-09 00:00:00
转换为 09/03/2016
我正在尝试下面的代码但是打印 nil
值
var date: [String] = ["2016-03-09 00:00:00", "2016-03-20 00:00:00"]
for i in date {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd/MM/YYYY"
let showDate = dateFormatter.dateFromString(i)
print(showDate)
}
以上代码打印nil
请帮助我如何在 swift
中打印日期 dd/MM/YYYY
格式
我认为你的日期格式有误。将 "dd/MM/YYYY" 更改为 "YYYY-MM-dd HH:mm:s" 并尝试...
You have a date like "2016-03-09 00:00:00" .. so format should be "YYYY-MM-dd HH:mm:s"
for i in date {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "YYYY-MM-dd HH:mm:s"
if let showDate = dateFormatter.dateFromString(i){
print("Date with Time: \(showDate)")
dateFormatter.dateFormat = "YYYY-MM-dd"
let resultString = dateFormatter.stringFromDate(showDate)
print("final result: \(resultString)")
}
}
结果:-
Date with Time: 2016-03-09 00:00:00 +0000
final result: 2016-03-09
Date with Time: 2016-03-20 00:00:00 +0000
final result: 2016-03-20
您应该首先创建一个日期格式化程序来处理类型。然后对您的格式进行排序,例如:
let date: [String] = ["2016-03-09 00:00:00", "2016-03-20 00:00:00"]
for i in date {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "YYYY-MM-dd HH:mm:s"
let showDate:NSDate? = dateFormatter.dateFromString(i)
dateFormatter.dateFormat = "dd/MM/YYYY"
let date = dateFormatter.stringFromDate(showDate!)
print(date)
}
在@ElCaptain 的回答中,我建议在循环外创建 2 个,而不是在每次通过循环时重新配置单个日期格式化程序:一个用于从 "YYYY-MM-dd HH:mm:s" 日期字符串转换为 NSDates 的输入日期格式化程序,以及一个用于将 NSDates 转换为 "YYYY-MM-dd" 格式的输出格式化程序。
let inputFormatter = NSDateFormatter()
inputFormatter.dateFormat = "YYYY-MM-dd HH:mm:s"
let outputFormatter = NSDateFormatter()
ourputFormatter.dateFormat = "YYYY-MM-dd"
for i in date {
if let showDate = inputFormatter.dateFromString(i) {
print("Date with Time: \(showDate)")
let resultString = outputFormatter.stringFromDate(showDate)
print("final result: \(resultString)")
}
}
我想将 2016-03-09 00:00:00
转换为 09/03/2016
我正在尝试下面的代码但是打印 nil
值
var date: [String] = ["2016-03-09 00:00:00", "2016-03-20 00:00:00"]
for i in date {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd/MM/YYYY"
let showDate = dateFormatter.dateFromString(i)
print(showDate)
}
以上代码打印nil
请帮助我如何在 swift
dd/MM/YYYY
格式
我认为你的日期格式有误。将 "dd/MM/YYYY" 更改为 "YYYY-MM-dd HH:mm:s" 并尝试...
You have a date like "2016-03-09 00:00:00" .. so format should be "YYYY-MM-dd HH:mm:s"
for i in date {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "YYYY-MM-dd HH:mm:s"
if let showDate = dateFormatter.dateFromString(i){
print("Date with Time: \(showDate)")
dateFormatter.dateFormat = "YYYY-MM-dd"
let resultString = dateFormatter.stringFromDate(showDate)
print("final result: \(resultString)")
}
}
结果:-
Date with Time: 2016-03-09 00:00:00 +0000
final result: 2016-03-09
Date with Time: 2016-03-20 00:00:00 +0000
final result: 2016-03-20
您应该首先创建一个日期格式化程序来处理类型。然后对您的格式进行排序,例如:
let date: [String] = ["2016-03-09 00:00:00", "2016-03-20 00:00:00"]
for i in date {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "YYYY-MM-dd HH:mm:s"
let showDate:NSDate? = dateFormatter.dateFromString(i)
dateFormatter.dateFormat = "dd/MM/YYYY"
let date = dateFormatter.stringFromDate(showDate!)
print(date)
}
在@ElCaptain 的回答中,我建议在循环外创建 2 个,而不是在每次通过循环时重新配置单个日期格式化程序:一个用于从 "YYYY-MM-dd HH:mm:s" 日期字符串转换为 NSDates 的输入日期格式化程序,以及一个用于将 NSDates 转换为 "YYYY-MM-dd" 格式的输出格式化程序。
let inputFormatter = NSDateFormatter()
inputFormatter.dateFormat = "YYYY-MM-dd HH:mm:s"
let outputFormatter = NSDateFormatter()
ourputFormatter.dateFormat = "YYYY-MM-dd"
for i in date {
if let showDate = inputFormatter.dateFromString(i) {
print("Date with Time: \(showDate)")
let resultString = outputFormatter.stringFromDate(showDate)
print("final result: \(resultString)")
}
}