【问题标题】:Get [NSDate date] with UTC time [duplicate]使用 UTC 时间获取 [NSDate 日期] [重复]
【发布时间】:2013-11-20 10:02:09
【问题描述】:

我正在使用最新的 SDK 开发 iOS 5.0+ 应用程序。

我有这个代码来获取日期作为字符串:

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 小时。

如何获取带有 UTC 时间的 [NSDate date]?

【问题讨论】:

  • 我没有,但请查看时区和语言环境
  • 你在 NSDate 对象中 UTC 时间。如果您费心搜索,您会发现 NSDateFormatter 假定为本地时区,除非您将其设置为 UTC。
  • 当你想找到重复的时候总是很难,但是这个问题每周都会出现;一年中的特定时间每天。

标签: ios iphone objective-c


【解决方案1】:

使用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];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 1970-01-01
      • 2013-07-09
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      相关资源
      最近更新 更多