2013-11-20 50 views
4

我正在开发包含最新SDK的iOS 5.0+应用程序。使用UTC时间获取[NSDate日期]

我有这样的代码来获得一个日期字符串:

NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"ddMMyyyy HH:mm"]; 
NSDate* now = [NSDate date]; 
NSString* dateAsString = [formatter stringFromDate:now]; 

VAR now2013-11-20 10:59:21 CETdateAsString20112013 10:59但我需要得到这个日期与UTC时间。在西班牙,我认为是-1小时。

如何获得[NSDate日期]与UTC时间?

+0

我没有,但PLZ考虑时区和语言环境 –

+1

你*有* UTC时间在NSDate对象。如果你不屑于搜索,你会发现NSDateFormatter假定当地时区,除非你把它设置为UTC。 –

+1

当你想要的时候很难找到重复的东西,但这个问题每周都会出现;每日在一年的特定时间。 –

回答

19

使用NSTimeZone

NSDateFormatter *formatter = [NSDateFormatter new]; 
[formatter setDateFormat:@"ddMMyyyy HH:mm"]; 

// Add this part to your code 
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"]; 
[formatter setTimeZone:timeZone]; 

NSDate *now = [NSDate date]; 
NSString *dateAsString = [formatter stringFromDate:now]; 
2

你可以用你的日期格式添加时区为

NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"]; 
[formatter setTimeZone:timeZone];