如何在Swift iOS中将字符串转换为日期字符串?
我正在学习swift,并在将日期字符串转换为NSDate字符串时被击中。我获取的日期字符串格式为“Thu,2015年10月22日07:45:17+0000”。我需要以MM-dd-yyyy格式显示日期。我尝试了以下代码,但它返回“null”如何在Swift iOS中将字符串转换为日期字符串?,ios,string,swift,nsdate,nsdateformatter,Ios,String,Swift,Nsdate,Nsdateformatter,我正在学习swift,并在将日期字符串转换为NSDate字符串时被击中。我获取的日期字符串格式为“Thu,2015年10月22日07:45:17+0000”。我需要以MM-dd-yyyy格式显示日期。我尝试了以下代码,但它返回“null” 谁能帮我一下我哪里出了问题?期待您的帮助。提前谢谢 参见Gary Makin的回答。您需要更改格式或数据。因为您拥有的数据不符合所选格式。例如,此代码正确工作: let dateFormatter = NSDateFormatter() dateFormatt
谁能帮我一下我哪里出了问题?期待您的帮助。提前谢谢 参见Gary Makin的回答。您需要更改格式或数据。因为您拥有的数据不符合所选格式。例如,此代码正确工作:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
let dateObj = dateFormatter.dateFromString("10 10 2001")
print("Dateobj: \(dateObj)")
首先,您需要将字符串及其格式转换为NSDate。然后,将
dateFormatter
更改为简单格式,并将其转换回字符串
Swift 3
let dateString = "Thu, 22 Oct 2015 07:45:17 +0000"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEE, dd MMM yyyy hh:mm:ss +zzzz"
dateFormatter.locale = Locale.init(identifier: "en_GB")
let dateObj = dateFormatter.date(from: dateString)
dateFormatter.dateFormat = "MM-dd-yyyy"
print("Dateobj: \(dateFormatter.string(from: dateObj!))")
打印结果为:Dateobj:10-22-2015
Swift 2及以下
//String to Date Convert
var dateString = "2014-01-12"
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let s = dateFormatter.dateFromString(dateString)
println(s)
//CONVERT FROM NSDate to String
let date = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
var dateString = dateFormatter.stringFromDate(date)
println(dateString)
let date = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
var dateString = dateFormatter.stringFromDate(date)
println(dateString)
在Swift 3和更高版本中,这将被写为:
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
var dateString = dateFormatter.string(from: date)
如果有人想知道Swift 3中的日期格式非常相似,而不是日期格式,请阅读本文档。stringFromDate(date)是
dateFormatter.string(from:date)
。如果您的设备因“Thu”而不是英语,则会崩溃,您必须指定区域设置。在swift 3中:dateFormatter.locale=locale.init(标识符:“en_GB”)
NSDateFormatter已替换为dateFormatter注意:如果日期应本地化,则此答案不正确。例如,在不同的国家,月和日是交换的,这是使用了错误的区域设置。使用日期格式化程序将固定格式字符串转换为日期时,需要使用en_US\u POSIX
。这是从日期转换为字符串
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
var dateString = dateFormatter.string(from: date)