带有nsdate的Nsdateformatter,用于在iOS中获取确切日期

带有nsdate的Nsdateformatter,用于在iOS中获取确切日期,ios,nsdateformatter,Ios,Nsdateformatter,我想从xml数据中获取日期,它是一个如下所示的字符串 “2015年2月6日星期五11:25:00-0600” 如何设置此类日期的nsdateformatter“-0600是时区”。 请帮我看: 另外,请特别注意“Z” Z时区:ISO8601基本hms?/RFC 822-0800 例如: NSString *dateString = @"Fri, 06 Feb 2015 11:25:00 -0600"; NSLog(@"dateString: %@", dateString); 输入日期字符串:

我想从xml数据中获取日期,它是一个如下所示的字符串 “2015年2月6日星期五11:25:00-0600” 如何设置此类日期的nsdateformatter“-0600是时区”。 请帮我看:
另外,请特别注意“Z”

Z时区:ISO8601基本hms?/RFC 822-0800

例如:

NSString *dateString = @"Fri, 06 Feb 2015 11:25:00 -0600";
NSLog(@"dateString: %@", dateString);
输入日期字符串:

日期字符串:2015年2月6日星期五11:25:00-0600

输出(以时区GMT为单位):

日期:2015-02-06 17:25:00+0000

要以特定格式从日期创建字符串,请执行以下操作:

NSDateFormatter *displayFormatter = [NSDateFormatter new];
[displayFormatter setDateFormat:@"E, dd MMM yyyy H:mm:ss Z"];
[displayFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CST"]];
NSString *displayString = [displayFormatter stringFromDate:date];
输出(在时区CST中):

显示字符串:2015年2月6日星期五11:25:00-0600


如果您需要帮助,您需要尝试一些广告,然后将代码添加到您的问题中以获得更多帮助。也许您应该参考。@Zaph您所有的代码都为我工作,但我没有将时区设置为-0600“GMT”,在您的代码中它显示为+0000,我怎么做?您所有的代码都为我工作,但我没有将时区设置为-0600“GMT”,在您的代码中,它显示为+0000,如何执行此操作?使用设置为所需输出格式的日期格式化程序以及本地格式(如果需要),使用
stringFromDate:
,以根据需要格式化字符串日期。NSLog只是使用了一个默认的日期格式化程序,它实际上只是用于调试。我使用将日期转换为字符串,但时间是6小时,增加时间。我也设置了时区,但没有获得正确的时间。如何使用设置的时区管理日期以获得正确的日期和时间?时间由NSDate以GMT保存。其他一切都是格式化。所以11:25:00-0600是CST,比17:25:00+0000 GMT早6个小时。(苹果使用GMT,这是古语,但与UTC相同)为您拥有的字符串和您想要的时区以及您想要的格式提供一个示例。我想设置日期“Fri,06 Feb 2015 11:25:00-0600”这个格式和时区GMT-6
NSDateFormatter *displayFormatter = [NSDateFormatter new];
[displayFormatter setDateFormat:@"E, dd MMM yyyy H:mm:ss Z"];
[displayFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CST"]];
NSString *displayString = [displayFormatter stringFromDate:date];