我有以下代码..
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/YYYY HH:mm"];
NSString *dateString = @"10/27/2012 18:00";
NSDate *parsedDate = [dateFormatter dateFromString:dateString] ;
NSLog(@"Parsed Date.. %@",[parsedDate description]);
我将NSLog语句作为Parsed Date.. 2011-12-25 00:00:00 +0000
。我很感激你解决这个问题的任何帮助。我只想将NSString转换为其NSDate等效项。尝试使用NSTimeZone,但没有效果。我在这里缺少什么?
答案 0 :(得分:3)
您需要使用小写年度指示,yyyy
代替YYYY
:
[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm"];
如果您想让时区正确,您需要设置NSDateFormatter
的时区。默认情况下,它使用设备的时区。在格林尼治标准时间使用以下内容。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm"];
NSString *dateString = @"10/27/2012 18:00";
NSDate *parsedDate = [dateFormatter dateFromString:dateString] ;
NSLog(@"Parsed Date.. %@",[parsedDate description]);
答案 1 :(得分:0)
您使用的格式字符串不正确。见the documentation。基本上,资本YYYY
是“一年中的一周”。尝试使用小写yyyy
代替,即
[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm"];