我在
字符串中有一个日期NSString Date = "Dec 21 2011";
我想将该字符串转换为日期 由于我的日期有特殊的格式,所以我正在使用这样的:
`NSDateFormatter *dateFormatterTest = [NSDateFormatter new];
[dateFormatterTest setDateFormat:@"MMM dd YYYY"];
fromDate = [dateFormatterTest dateFromString:Date];
NSLog("%@",fromDate);
我收到此日志
2010-12-18 19:00:00 +0000
任何人都可以解释我如何才能得到正确的约会。
答案 0 :(得分:5)
您需要在日期格式中使用小写yyyy
:
[dateFormatterTest setDateFormat:@"MMM dd yyyy"];
这种新日期格式的输出是:
2011-12-21 00:00:00 +0000
除此之外(主要问题),您需要修复以下内容:
NSString *date
@"Dec 21 2011"
NSDate *fromDate =
... NSLog(@"%@",fromDate);
您的代码现在应如下所示:
NSString *date = @"Dec 21 2011";
NSDateFormatter *dateFormatterTest = [NSDateFormatter new];
[dateFormatterTest setDateFormat:@"MMM dd yyyy"];
NSDate *fromDate = [dateFormatterTest dateFromString:date];
NSLog(@"%@",fromDate);
注意我已将Date
重命名为小写,因为通常会以这样的方式命名实例,以避免将它们与类混淆。
答案 1 :(得分:2)
根据您的上一条评论:您必须设置时区。
例如:
NSString *date = @"Dec 21 2011";
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
NSDateFormatter *dateFormatterTest = [NSDateFormatter new];
[dateFormatterTest setTimeZone:gmt];
[dateFormatterTest setDateFormat:@"MMM dd yyyy"];
NSDate *fromDate = [dateFormatterTest dateFromString:date];
NSLog(@"%@",fromDate);