use*_*987 11 json objective-c nsdate
我有一个JSON格式的日期字符串,它看起来像这样:2013-05-22T10:54:40.437
而我正在尝试将其转换为NSDate.
- (NSString *)dateFromString:(NSString *)datestring{
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss"];
NSDate *date = [dateFormat dateFromString:datestring];
//date is nil here.
NSDateFormatter *newDateFormatter = [[NSDateFormatter alloc]init];
[newDateFormatter setDateFormat:@"MM/dd/yyyy"];
NSString *newString = [newDateFormatter stringFromDate:date];
NSLog(@"Date -- %@",datestring);
return newString;
}
Run Code Online (Sandbox Code Playgroud)
但是dateFromString之后的日期是零.有谁知道我在这里做错了什么?谢谢!
Luk*_*cka 31
使用此日期格式:
yyyy-MM-dd'T'HH:mm:ss.SSS
Run Code Online (Sandbox Code Playgroud)
您的代码几乎没有修改:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];
NSDate *date = [dateFormat dateFromString:datestring];
NSDateFormatter *newDateFormatter = [[NSDateFormatter alloc]init];
[newDateFormatter setDateFormat:@"MM/dd/yyyy"];
NSString *newString = [newDateFormatter stringFromDate:date];
NSLog(@"Date: %@, formatted date: %@", date, newString);
Run Code Online (Sandbox Code Playgroud)
给我这个输出:
Date: 2013-05-22 08:54:40 +0000, formatted date: 05/22/2013
Run Code Online (Sandbox Code Playgroud)
编辑:"ikinci viking"如何在评论中指出,逃避破折号是不必要的.转义已从代码中删除
适用于iOS 11+的更新
ISO8601DateFormatter 是在iOS 10+上解析互联网日期的推荐方法.
但是,它几乎没有问题阻止它与问题中的特定格式一起使用:
+00:00 或Z"祖鲁时间"UTC)如果日期字符串包含毫秒和时区(例如2018-09-07T14:04:13.143Z),则可以按如下方式使用(Swift示例):
let isoDateFormatter = ISO8601DateFormatter()
isoDateFormatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13901 次 |
| 最近记录: |