NSString转换为NSDate失败
我有以下代码
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以及,但没有效果。 我在这里错过了什么?
您需要使用小写年份指示, 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]);
您正在使用不正确的格式string。 请参阅文档 。 基本上,大写YYYY
是“年份周”。 尝试使用小写的yyyy
而不是
[dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm"];