获取所需的日期对象

时间:2014-10-27 07:47:38

标签: ios objective-c nsdate

我有一个字符串:

NSString* string=@"2014-10-02 18:15:00 +0000";

如何使用此字符串获取日期对象?

我试过了:

  NSString* string=@"2014-10-02 18:15:00 +0000";
  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  [dateFormatter setDateFormat:@"yyyy-MM-dd hh:mm:ss Z"];
  NSDate *mydate = [dateFormatter dateFromString:string];
  NSLog(@"mydate = %@",mydate);

mydate记录空值。我原本希望登录2014-10-02 18:15:00 +0000。

我想要的是拥有日期对象,可以将其与另一个日志对象进行比较,该对象在记录时显示为2014-10-02 18:15:00 +0000。

3 个答案:

答案 0 :(得分:2)

你的字符串是24小时格式,但'hh'是12小时格式。 'HH'是24小时格式。这就是为什么它返回null。试试这个:

  NSString* string=@"2014-10-02 18:15:00 +0000";
  NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
  [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];
  NSDate *mydate = [dateFormatter dateFromString:string];
  NSLog(@"mydate = %@",mydate);

希望这会有所帮助.. :)

答案 1 :(得分:1)

因为您正在使用hh,它提供12小时的格式化日期。但是你得到的是24小时格式化,所以你必须使用HH,它提供24小时格式。有关日期格式的更多详细信息,请查看Vanya的答案。这里有很好的解释几乎所有格式。(Formatting date and time with iPhone SDK?

答案 2 :(得分:1)

你必须使用" z"相反" Z"对于区域

NSString* string=@"2014-10-02 18:15:00 +0000";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss z"];
NSDate *mydate = [dateFormatter dateFromString:string];
NSLog(@"mydate = %@",mydate);