这是我收到的需要转换为NSDate的json字符串值:
2017-04-08T13:51:00.000 + 03:00
这是我转换为NSDate:
import UIKit
class SearchResultsViewController: UIViewController {
let contentArray = ["lorem", "ipsum", "dolor", "sit", "amet"]
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var noItemsLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func searchForItemsWithString(searchQuery:String) {
if contentArray.count != 0 {
tableView.hidden = false
noItemsLabel.hidden = true
}
else {
tableView.hidden = true
noItemsLabel.hidden = false
}
}
}
结果记录:
nsdate :( null)
似乎日期格式不正确。如何解决这个问题?
答案 0 :(得分:2)
使用以下日期格式化程序字符串
"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"
使用ZZZZZ
作为时区/区域/时间偏移量 - 例如+03:00
SSS
小数秒 - 例如123个
最重要的是在秒与其分数之间使用.
而不是:
感谢rmaddy纠正
S
和Z
的数量以满足所需的确切输入
请注意,您可以使用SZ
代替SSSZZZZZ
,因为解析器足够聪明,无论如何都可以解析它。如果你想从日期创建一个字符串,但是你需要上面的日期格式化字符串。
"yyyy-MM-dd'T'HH:mm:ss.SZ"
有关日期格式化程序字符串的更多详细信息,请参见zh的unicode部分
Date Format Patterns
答案 1 :(得分:-1)
结束时Z为时间偏移量
+ (NSDate *)stringDateToDate:(NSString *)aStringDate
{
NSDate *date = nil;
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss:SSSZ"];
date = [dateFormat dateFromString:aStringDate];
NSLog(@"nsdate: %@", date);
return date;
}