我的日期字符串是2014-01-08T21:21:22.737 + 05:30这种格式。我如何将其授予NSDate?
我试过了:
NSString *currentDateString = @"2014-01-08T21:21:22.737+05:30";
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS+05:30"];
NSDate *currentDate = [dateFormatter dateFromString:currentDateString];
NSLog(@"CurrentDate:%@", currentDate);
它返回零。有什么想法吗?
答案 0 :(得分:22)
使用此代码,dateFormatter
出错了。
NSDateFormatter *dateFormatter=[[NSDateFormatter alloc]init];
NSString *currentDateString = @"2014-01-08T21:21:22.737+05:30";
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"];
NSDate *currentDate = [dateFormatter dateFromString:currentDateString];
NSLog(@"CurrentDate:%@", currentDate);
快乐的编码!!!!!!!!!!。
答案 1 :(得分:13)
您的日期格式包含时区作为文字:yyyy-MM-dd'T'HH:mm:ss.SSS+05:30
+05:30
它是时区定义。您应该使用Z
解析它。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
NSString *currentDateString = @"2014-01-08T21:21:22.737+05:30";
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"];
NSDate *currentDate = [dateFormatter dateFromString:currentDateString];
NSLog(@"CurrentDate:%@", currentDate);
答案 2 :(得分:5)
NSString *p=@"2014-01-08T21:21:22.737+05:30";
NSDateFormatter *dateformat=[[NSDateFormatter alloc]init];
[dateformat setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"];
NSDate *datefor=[dateformat dateFromString:p];
[dateformat setDateFormat:@"MM-dd-yyyy hh:mm a"];
NSString *dateStr=[dateformat stringFromDate:datefor];
NSDate *datetype=[dateformat dateFromString:dateStr];
答案 3 :(得分:2)
我认为您需要在代码中初始化dateFormatter
,如下所示。因为如果不总是初始化你会得到空值: -
dateFormatter=[[NSDateFormatter alloc]init];
答案 4 :(得分:2)
将dateFormat设置为
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"];
是的,现在NSLog正在打印一个特定的日期。!!!
享受编码