我有一个日期字符串:
2017年3月25日星期三05:30:00 GMT + 0530(IST)
我想将此字符串转换为Swift 3中的Date
对象。
答案 0 :(得分:0)
1)如果您的字符串包含IST
或GMT
等时区名称,那么您可以按照{{3}中的说明使用NSDateDetector
}:
extension String {
var nsString: NSString { return self as NSString }
var length: Int { return nsString.length }
var nsRange: NSRange { return NSRange(location: 0, length: length) }
var detectDates: [Date]? {
return try? NSDataDetector(types: NSTextCheckingResult.CheckingType.date.rawValue)
.matches(in: self, range: nsRange)
.flatMap{$0.date}
}
}
//your example here
let dateString = "Wed Mar 25 2017 05:30:00 GMT+0530 (IST)"
if let dateDetected = dateString.detectDates?.first {
let date = dateDetected//Mar 25, 2017, 5:30 AM
print(dateDetected)//2017-03-25 00:00:00 +0000 - this is GMT time
}
2017年3月25日,上午5:30 //日期转换为当地时区
2017-03-25 00:00:00 +0000 // GMT时间的印刷值
2)或者,如果您能够从字符串中删除GMT
和IST
引用,请尝试以下操作:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEE, MMM d yyyy HH:mm:ss Z"
let date = dateFormatter.date(from: "Wed Mar 25 2017 05:30:00 +0530")!
print(date)
它会给你
2017年3月25日,上午5:30 //日期转换为当地时区
2017-03-25 00:00:00 +0000 // GMT时间的印刷值
答案 1 :(得分:-1)
var dateString = "Wed, 25 Mar 2017 05:30:00 +0000"
var dateFormatter = DateFormatter()
dateFormatter.dateFormat = "E, d MMM yyyy HH:mm:ss Z"
var dateFromString = dateFormatter.date(from: dateString)
print(dateFromString)