Ios 从NSDate创建绝对时间

Ios 从NSDate创建绝对时间,ios,objective-c,Ios,Objective C,这看起来很容易,但我想不出一个合适的方法来做到这一点。我需要从NSDate创建一个NSString,它代表每个设备上的相同时间,独立于iPhone的时区设置 < > >代码> USERA/COD>在伦敦,实际时间为14:00, UBRB 位于纽约,9:00和 USEC < /代码>在香港,实际时间为21:00。p> NSDate *now = [[NSDate alloc] init]; NSDateFormatter *dateFormatter = [[NSDateFormatter all

这看起来很容易,但我想不出一个合适的方法来做到这一点。我需要从
NSDate
创建一个
NSString
,它代表每个设备上的相同时间,独立于iPhone的时区设置

< > >代码> USERA/COD>在伦敦,实际时间为14:00,<代码> UBRB <代码>位于纽约,9:00和<代码> USEC < /代码>在香港,实际时间为21:00。p>
NSDate *now = [[NSDate alloc] init];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/yy HH:mm:ss"];
NSString *dateString = [dateFormatter stringFromDate:now];
实际上,通过这段代码,我得到了以下结果(当我记录
日期字符串时):

  • 用户A:
    08/12/14 14:00:00
  • 用户B:
    08/12/14 09:00:00
  • 用户C:
    08/12/14 21:00:00
但我需要这样的日期

  • 用户A:
    08/12/14 14:00:00
  • 用户B:
    08/12/14:00:00
  • 用户C:
    08/12/14:00:00
我的目标是创建一个“系统/绝对时间”,它在应用程序中是相同的,并且与用户设备的原始时区无关。最终结果必须如下所示
MM/dd/yy HH:MM:s

是否可以获得
NSDate*now=[[NSDate alloc]init]来自预定义时区?例如,它可以始终使用GMT-00时区的实际时间

我曾尝试使用此代码执行此操作,但当我运行代码时,控制台再次写出错误的日期(基于设备时区设置),因此我没有更好的主意。如果有任何想法,我将不胜感激

NSDate *now = [[NSDate alloc] init];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

dateFormatter.timeZone  = [NSTimeZone timeZoneWithAbbreviation:@"Europe/London"];
[dateFormatter setDateFormat:@"MM/dd/yy HH:mm:ss"];

NSString *dateString = [dateFormatter stringFromDate:now];
NSLog(@"the date is %@,", dateString);

在以下两条线索之间,我想你会找到你需要的一切(然后是一些)。这是一个与您类似的问题的广泛示例(请记住查看答案中的代码,而不是问题),而具有您需要的所有时区缩写。一定要爱那些有帮助的人

再次链接,以防万一


在以下两条线索之间,我想你会找到你需要的一切(然后是一些)。这是一个与您类似的问题的广泛示例(请记住查看答案中的代码,而不是问题),而具有您需要的所有时区缩写。一定要爱那些有帮助的人

再次链接,以防万一


在以下两条线索之间,我想你会找到你需要的一切(然后是一些)。这是一个与您类似的问题的广泛示例(请记住查看答案中的代码,而不是问题),而具有您需要的所有时区缩写。一定要爱那些有帮助的人

再次链接,以防万一


在以下两条线索之间,我想你会找到你需要的一切(然后是一些)。这是一个与您类似的问题的广泛示例(请记住查看答案中的代码,而不是问题),而具有您需要的所有时区缩写。一定要爱那些有帮助的人

再次链接,以防万一


下面的代码应该可以工作。您所在的时区始终以UTC显示时间

NSDate *now = [[NSDate alloc] init];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[[NSTimeZone alloc] initWithName:@"UTC"]];
[dateFormatter setDateFormat:@"MM/dd/yy HH:mm:ss"];
NSString *dateString = [dateFormatter stringFromDate:now];
NSLog(@"%@",dateString);

下面的代码应该可以工作。您所在的时区始终以UTC显示时间

NSDate *now = [[NSDate alloc] init];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[[NSTimeZone alloc] initWithName:@"UTC"]];
[dateFormatter setDateFormat:@"MM/dd/yy HH:mm:ss"];
NSString *dateString = [dateFormatter stringFromDate:now];
NSLog(@"%@",dateString);

下面的代码应该可以工作。您所在的时区始终以UTC显示时间

NSDate *now = [[NSDate alloc] init];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[[NSTimeZone alloc] initWithName:@"UTC"]];
[dateFormatter setDateFormat:@"MM/dd/yy HH:mm:ss"];
NSString *dateString = [dateFormatter stringFromDate:now];
NSLog(@"%@",dateString);

下面的代码应该可以工作。您所在的时区始终以UTC显示时间

NSDate *now = [[NSDate alloc] init];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[[NSTimeZone alloc] initWithName:@"UTC"]];
[dateFormatter setDateFormat:@"MM/dd/yy HH:mm:ss"];
NSString *dateString = [dateFormatter stringFromDate:now];
NSLog(@"%@",dateString);

因为它不是你在那里喂的东西的缩写。除此之外,你完全在正确的轨道上。@Desdenova你到底是什么意思?我应该做什么不同?
欧洲/伦敦
不是缩写。它可能返回
nil
,设备从系统获取时区<例如,code>GMT
是一个缩写。可能是的重复,因为它不是您在那里输入的缩写。除此之外,你完全在正确的轨道上。@Desdenova你到底是什么意思?我应该做什么不同?
欧洲/伦敦
不是缩写。它可能返回
nil
,设备从系统获取时区<例如,code>GMT
是一个缩写。可能是的重复,因为它不是您在那里输入的缩写。除此之外,你完全在正确的轨道上。@Desdenova你到底是什么意思?我应该做什么不同?
欧洲/伦敦
不是缩写。它可能返回
nil
,设备从系统获取时区<例如,code>GMT是一个缩写。可能是的重复,因为它不是您在那里输入的缩写。除此之外,你完全在正确的轨道上。@Desdenova你到底是什么意思?我应该做什么不同?
欧洲/伦敦
不是缩写。它可能返回
nil
,设备从系统获取时区<代码>GMT是一个缩写,例如。可能与