如何将字符串转换为具有无关字符(swift)的 NSDate?
How to convert string to NSDate that has extraneous characters (swift)?
我有字符串 "Sat, 21 Nov 2015 19:20:48 EST\n\t\t\t",我需要将其转换为 NSDate,但它一直给我 nil。
- 我试图通过
清除字符串
dateString.stringByReplacingOccurrencesOfString("\"", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
结果看起来不错:2015 年 11 月 21 日星期六 19:20:48。转换为 NSDate = nil :(
- 好的,我手动删除了噪声字符并尝试将字符串 "Sat, 21 Nov 2015 19:20:48 EST" 转换为 NSDate。 再次为零:
let dateString = "Sat, 21 Nov 2015 19:20:48 EST"
let formatter = NSDateFormatter()
formatter.locale = NSLocale(localeIdentifier: 'US_en')
formatter.dateFormat = 'yyyy-MM-dd'
print("date = \(date)")
//date = nil
我做错了什么?
即使我使用 "formatter.timeZone = NSTimeZone(abbreviation: "EST")" 仍然是零。
Answer to your first question:
您可以使用以下代码 trim 字符串中不需要的空格和换行符
var dateAsString = "Sat, 21 Nov 2015 19:20:48 EST\n\t\t"
dateAsString = dateAsString.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
Answer to your second question:
有关所有字符串格式符号的列表,请参阅此 link 中的日期格式符号 table。
您应该可以使用此格式化程序转换指定日期,
let customDateFormatter = NSDateFormatter()
dayTimePeriodFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss zzz"
let date = dayTimePeriodFormatter.dateFromString(dateAsString) //"Sat, 21 Nov 2015 19:20:48 EST"
我有字符串 "Sat, 21 Nov 2015 19:20:48 EST\n\t\t\t",我需要将其转换为 NSDate,但它一直给我 nil。
- 我试图通过 清除字符串
dateString.stringByReplacingOccurrencesOfString("\"", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
结果看起来不错:2015 年 11 月 21 日星期六 19:20:48。转换为 NSDate = nil :(
- 好的,我手动删除了噪声字符并尝试将字符串 "Sat, 21 Nov 2015 19:20:48 EST" 转换为 NSDate。 再次为零:
let dateString = "Sat, 21 Nov 2015 19:20:48 EST"
let formatter = NSDateFormatter()
formatter.locale = NSLocale(localeIdentifier: 'US_en')
formatter.dateFormat = 'yyyy-MM-dd'
print("date = \(date)")
//date = nil
我做错了什么?
即使我使用 "formatter.timeZone = NSTimeZone(abbreviation: "EST")" 仍然是零。
Answer to your first question:
您可以使用以下代码 trim 字符串中不需要的空格和换行符
var dateAsString = "Sat, 21 Nov 2015 19:20:48 EST\n\t\t"
dateAsString = dateAsString.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
Answer to your second question:
有关所有字符串格式符号的列表,请参阅此 link 中的日期格式符号 table。
您应该可以使用此格式化程序转换指定日期,
let customDateFormatter = NSDateFormatter()
dayTimePeriodFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss zzz"
let date = dayTimePeriodFormatter.dateFromString(dateAsString) //"Sat, 21 Nov 2015 19:20:48 EST"