Iphone 基于时区创建NSDate对象
我从我的申请中获得以下日期格式Iphone 基于时区创建NSDate对象,iphone,cocoa-touch,ios4,nsdate,nsdateformatter,Iphone,Cocoa Touch,Ios4,Nsdate,Nsdateformatter,我从我的申请中获得以下日期格式 07/18/2011/04/45/EDT 我将其分为“07/18/2011/04/45”和“EDT” 我使用以下代码编写了一个日期 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"MM/dd/yyyy/HH/mm"]; [dateFormatter setTimeZone:[NSTimeZone tim
07/18/2011/04/45/EDT
我将其分为“07/18/2011/04/45”和“EDT”
我使用以下代码编写了一个日期
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/yyyy/HH/mm"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"EDT"]];
NSDate *currentServerDate = [dateFormatter dateFromString:formattedDateString];
NSLog(@"currentServerDate %@",currentServerDate);
但是,当我打印NSDate(使用上述格式化程序创建)时,它会打印为“2011-07-18 14:15:00+0530”,其中+0530是我的时区。我需要组成相对于EDT时区的。我该怎么做
谢谢我想时区可能不是你想象的那样。尝试记录由返回的时区,看看它告诉您什么。此外,请查看我链接到的文档,其中说明: 一般来说,除了“UTC”或“GMT”等独特实例外,不鼓励您使用缩写。时区缩写没有标准化,因此给定的缩写可能有多种含义,例如,“EST”指美国和澳大利亚的东部时间
默认情况下,
NSDate
的description
方法在GTM中用系统的区域设置偏移量显示日期。如果要使用NSLog
弹出NSDate
,请使用以下选项之一:
NSLog(@"date = %@", [date descriptionWithLocale:some_other_locale])
NSDateFormatter *formatter = ...
NSLog(@"date = %@", [formatter stringFromDate:date]);
请显示你创建日期的代码,然后打印出来。好的,用它更新了帖子。谢谢,杰里米,看来这就是问题所在。投票赞成。谢谢