Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Swift iOS中将字符串转换为日期字符串?_Ios_String_Swift_Nsdate_Nsdateformatter - Fatal编程技术网

如何在Swift iOS中将字符串转换为日期字符串?

如何在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

我正在学习swift,并在将日期字符串转换为NSDate字符串时被击中。我获取的日期字符串格式为“Thu,2015年10月22日07:45:17+0000”。我需要以MM-dd-yyyy格式显示日期。我尝试了以下代码,但它返回“null”


谁能帮我一下我哪里出了问题?期待您的帮助。提前谢谢

参见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)