我有一个NSString,它是05/08/2014。我想把它转换成NSDate。然而,我还需要添加时间,因此结果NSDate看起来像这样:
Thu, 8 May 2014 00:00:00 -0500
时间不重要,我只需要它显示指定时区的午夜。
I have try:
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)。
第一次转换的日期格式错误。您需要做的是首先将字符串从一种格式转换为日期,并将新日期转换为新的字符串格式。像这样:
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];
EEE, d MMM yyyy HH:mm:ss ZZZ
您的时区代码是小写而不是大写。
zzz对应PDT
ZZZ对应-0500
UTS 35