日期格式将NSString(2015年7月29日星期三14:46:11 +0000)转换为ios中的NSDate

时间:2015-07-31 13:34:24

标签: ios nsstring nsdate nsdateformatter

我的日期为NSString格式为" Wed Jul 29 14:46:11 +0000 2015"。我已经尝试了将此字符串转换为NSDate的所有可能方法。但无法找到正确的字符串类型格式。

有人可以提供帮助或建议将其转换为NSDate。

以下是代码:

    NSDateFormatter *format = [[NSDateFormatter alloc] init];
    format.dateFormat       = @"EEEE MM dd HH:mm:ss Z YYYY";
    //[format setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
    NSLocale *locale = [[NSLocale alloc]initWithLocaleIdentifier:@"en_US_POSIX"];
    [format setLocale:locale];
       NSDate *date = [format dateFromString:@"Wed Aug 19 17:36:46 +0000 2015"];
    NSLog(@"converted date is %@",date);* 

但其返回的错误日期为转换日期为2014-12-24 17:36:46 +0000

感谢。

3 个答案:

答案 0 :(得分:2)

您需要将NSDateFormatter的{​​{1}}设置为dateFormat

您可以使用以下代码将指定的字符串转换为日期。

目标C:

EEEE MM dd HH:mm:ss Z YYYY

<强>夫特:

NSString *string        = @"Wed Jul 29 14:46:11 +0000 2015";
NSDateFormatter *format = [[NSDateFormatter alloc] init];
format.dateFormat       = @"EEEE MMM dd HH:mm:ss Z yyyy";
NSDate *date            = [format dateFromString:string];

答案 1 :(得分:0)

你确定:

  • 调用dateFromString()?
  • 时,您有正确的NSDateFormatter格式
  • 你有合适的语言环境吗?
  • 你查了回来的任何错误吗?

请发布代码和您的失败​​消息/结果。 请参阅documentationrelated SO post

答案 2 :(得分:0)

你可以这样做。它可以帮助你。

NSString *dateString = @"Wed Jul 29 14:46:11 +0000 2015";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"EEEE MMMM dd yyyy HH:mm:ss Z yyyy"];

NSDate *dateFromString = [[NSDate alloc] init];

dateFromString = [dateFormatter dateFromString:dateString];