2014-10-07 13 views
7

我已经看到了另一个答案和问题,但我没有找到任何有用的答案。 我有一个字符串,如2014-10-07T07:29:55.850Z,我想有一个日期来比较对方。 如果我使用这个代码:将字符串转换为日期Objective-C

NSString *fullDate = payload[@"sent_ts"]; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
dateFormat setDateFormat:@"yyyy-MM-ddTHH:mm:ss.SSSZ"]; 
NSDate *date = [dateFormat dateFromString:fullDate]; 

我的约会是零。为什么?

+0

你在秒后有一个点...不是冒号。仔细查看格式字符串,然后再发布问题>< – borrrden 2014-10-07 07:33:57

+0

我已经看到了,但不幸的是这不是错误。 – fustalol 2014-10-07 07:34:52

+1

把单引号放在T – borrrden 2014-10-07 07:40:16

回答

15

试试这个。

NSString *dateString = @"2014-10-07T07:29:55.850Z"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; 
    NSDate *date = [dateFormatter dateFromString:dateString]; 
+0

它可以在T上使用单引号而不在Z上。为什么? – fustalol 2014-10-07 07:52:33

+0

@fustalol - Z是一个有效的时间格式化程序:http://www.deanoj.co.uk/ios-development/nsdateformatter-formatting-strings-reference/ – foldinglettuce 2015-04-21 00:42:53

+0

它的工作原理。谢谢。 – 2017-05-24 12:26:28