将NSString转换为NSDate,增加时间

时间:2014-05-08 21:35:35

标签: ios nsstring nsdate nsdateformatter

我有一个NSString,即05/08/2014。我想将其转换为NSDate。但是,我还需要及时添加,以便生成的NSDate看起来像这样:

Thu, 8 May 2014 00:00:00 -0500

时间并不重要,我只需要在指定的时区显示午夜。

我试过了:

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

        [dateFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss zzz"];
        NSDate *dateFromString = [[NSDate alloc] init];
        dateFromString = [dateFormatter dateFromString:textdate.text];
        [dateFormatter release];
        NSLog(@"%@", dateFromString);

但是日期又回来了(null)。

2 个答案:

答案 0 :(得分:1)

第一次转换时,您的日期格式有误。您需要的是首先从一种格式转换为字符串到日期,并将新日期格式化为新的字符串格式。像这样:

NSDateFormatter  *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"MM/dd/yyyy"]; //convert the string into date (american time zone)
    NSDate *theDate = [formatter dateFromString:textdate.text];
    [formatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss ZZZ"];// as @Logan suggested
    NSString *newDate = [formatter stringFromDate:theDate];

答案 1 :(得分:0)

EEE,d MMM yyyy HH:mm:ss ZZZ

您的时区代码是小写而不是大写。

zzz对应于PDT

ZZZ对应-0500

UTS 35