1

NSString我有格式的日期(作为):

20120508T224500Z

我正在尝试使用从字符串NSDateFormatter创建一个:NSDate

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyMMddTHHmmssZ"];
NSDate *dateFromString = [[NSDate alloc] init];  

但这会错误地解析/格式化 NSDate。

我正在尝试获取格式:

4:45 PM 5/8/2012

如何使用日期格式化程序yyyyMMddTHHmmssZ来获取这种格式?

4

1 回答 1

4

您必须在字符串中单引号“T”和“Z”:20120508T224500Z

有关格式信息,请参阅unicode 日期格式

例子:

NSString *dateString = @"20120508T224500Z";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyMMdd'T'HHmmss'Z'"];
NSDate *dateFromString = [dateFormatter dateFromString:dateString];  
NSLog(@"dateFromString: %@", dateFromString);

[dateFormatter setDateFormat:@"h:m a M/d/yyyy"];
NSString *newDataString = [dateFormatter stringFromDate:dateFromString];
NSLog(@"newDataString: %@", newDataString);

NSLog 输出:

日期从字符串:2012 年 5 月 9 日 02:45:00 +0000
新数据字符串:2012 年 5 月 8 日晚上 10:45

请注意,NSLog 使用了 NSDate 描述方法,并以本地时间显示日期/时间。
用于- (void)setTimeZone:(NSTimeZone *)tz在不同的时区创建字符串。

于 2012-05-07T22:24:33.673 回答