NSJSONSerialization将日期分隔符从yyyy/MM/dd更改为yyyy/MM/dd


NSString *date = [userDefaults objectForKey:KEY_FORM7_DECLARATION_DATE];
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc]initWithObjectsAndKeys:date, @"DATE",nil]
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary options:0 error:&error];
NSString *result = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];

当我做NSLog(@"%@", date)时,显示的是2016/10/30但是当我尝试打印NSLog(@"%@", result)时,日期更改为2016/10/30

似乎这是NSJSONSerialization的预期行为:类似的问题

对于您的简单情况,我只能提出简单的解决方案:用替换符号序列化JSON,然后使用序列化字符串作为格式:

let dateString = "2016/10/30"
var dict = ["DATE": "%@"]
do {
    let data = try NSJSONSerialization.dataWithJSONObject(dict, options: NSJSONWritingOptions(rawValue: 0))
    let format = String(data: data, encoding: NSUTF8StringEncoding)!
    let result = String(format: format, dateString)
} catch {
    print(error)
}