在将NSString转换为NSDate时,我应该选择哪个dateFormat?

时间:2015-01-20 14:42:46

标签: ios xcode nsstring nsdate nsdateformatter

我有一个像@"2014-11-27T10:54:08.185Z"

这样的NSString
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];  
[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'hh':'mm':'ss'.'SSS'Z'"];
NSDate * date =  [dateFormatter dateFromString:self.creationTime];

我尝试了很多不同的格式化程序字符串,但日期总是为零。

或者这里有另一个问题吗?

3 个答案:

答案 0 :(得分:1)

日期字符串格式中的小时似乎是24小时格式。 因此,您需要在HH中使用hh而不是dateFormat

More info

答案 1 :(得分:0)

尝试

NSDateFormatter *formatter = [[NSDateFormatter alloc]init];

[formatter setDateFormat:@"yyyy'-'MM'-'dd'T'hh':'mm':'ss'.'SSS'Z'"];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:self.creationTime];

self.dateLabel.text = [formatter stringFromDate:date];

答案 2 :(得分:-1)

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSDate *date = [dateFormatter dateFromString:@"2013-02-01T06:25:47Z"];
NSTimeZone *pdt = [NSTimeZone timeZoneWithAbbreviation:@"PDT"];
[dateFormatter setTimeZone:pdt];
[dateFormatter setDateFormat:@"HH:mm:ss zzz"];
[dateFormatter setDateFormat:@"K:mm a, z"];
NSString * updated String = [dateFormatter stringFromDate:date];

请试试这个......:)