iOS将NSString转换为NSDate总是零

时间:2014-12-27 18:37:43

标签: ios objective-c nsstring nsdate

我试图将字符串转换为NSdate。字符串日期为" 12/27/2014 07:42:00 AM +0000 "

这是我的代码:

NSDate *date =[[NSDate alloc] init];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"MM/dd/yyyy HH:mm:ss a";
date = [ dateFormatter dateFromString:dateString];

日期值始终为零。你们中的任何人都知道我的错误是什么?

我真的会帮助你。

2 个答案:

答案 0 :(得分:8)

尝试

dateFormatter.dateFormat = @"MM/dd/yyyy hh:mm:ss a Z";

HH为24小时,冲突aZ代表时区偏移量。

查看说明符:http://unicode.org/reports/tr35/tr35-6.html#Date_Field_Symbol_Table


NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"MM/dd/yyyy hh:mm:ss a Z";
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
// see https://developer.apple.com/library/ios/qa/qa1480/_index.html


NSDate *date = [dateFormatter dateFromString:dateString];

答案 1 :(得分:7)

    NSString *str =@"12/27/2014 07:42:00 AM +0000";        
    NSDateFormatter *sdateFormatter = [[NSDateFormatter alloc] init];
    sdateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
    [sdateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a Z'"];

    NSDate *sdate = [sdateFormatter dateFromString:str];
    NSLog(@"%@",[sdateFormatter stringFromDate:sdate]);