的NSString(+时区),以的NSDate

问题描述:

未能的NSString转换成的NSDate的NSString(+时区),以的NSDate

结果:日期=零;

(*注:日期从In App Purchase的收据接收)

NSString * date_string = @"2017-09-24 11:20:21 Etc/GMT"; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
NSDate *date = [dateFormatter dateFromString:date_string]; 
NSLog(@"date %@",date); 
+0

“(字符串包含时区)” - 但您的格式不包含任何的时区,你抬起头来时区项的日期和时间格式的文件?字符串中是否有“Etc /”?只是似乎令人惊讶。 – CRD

+0

@CRD'Etc/GMT'是一个有效的时区。 – vadian

+0

@vadian - 谢谢,刚刚学到了一些东西。 – CRD

试试这个..

NSString * date_string = @"2017-09-24 11:20:21 Etc/GMT"; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss VV"]; 
    NSDate *date = [dateFormatter dateFromString:date_string]; 
    NSLog(@"date %@",date); 
+0

是的你是对的,它的工作√非常感谢你 –

的问题是,你还没有告诉日期格式如何在日期结束时处理有趣的字符序列,即Etc/GMT。您的格式需要在末尾有time zone specifierVV可能做的伎俩,即

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss VV"];