【问题标题】:How to set the timezone on NSDateComponents如何在 NSDateComponents 上设置时区
【发布时间】:2016-06-21 19:58:59
【问题描述】:

我正在尝试使用 NSDateComponents.. 但它给了我 1979-05-10 08:30:00 +0000....应该为 setTimeZone: 设置什么值给我我当地时间 (GMT+2) 的小时数,应该是 1979-05-10 10:30:00 +0000

NSDateComponents *comp = [[NSDateComponents alloc] init];
[comp setYear:1979];
[comp setMonth:5];
[comp setDay:10];
[comp setHour:10];
[comp setMinute:30];
[comp setTimeZone:];

【问题讨论】:

标签: objective-c nsdatecomponents


【解决方案1】:

您可以使用+(NSTimeZone) timeZoneForSecondsFromGMT:。 要将小时转换为秒,请乘以 3600。

示例:

对于 GMT+2

[NSTimeZone timeZoneForSecondsFromGMT:3600*2]

对于 GMT-2

[NSTimeZone timeZoneForSecondsFromGMT:-3600*2]

要获取设备本地的时区:

[NSTimeZone localTimeZone]

【讨论】:

  • 我为timeZoneForSecondsFromGMT 输入零而不是 (3600*2) 以获得正确的时间:1979-05-10 10:30:00 +0000 可以解释一下原因吗?..这是正确的怎么做?:NSTimeZone *local = [NSTimeZone timeZoneForSecondsFromGMT:0]; NSDateComponents *comp = [[NSDateComponents alloc] init]; [comp setYear:1979]; [comp setMonth:5]; [comp setDay:10]; [comp setHour:10]; [comp setMinute:30]; [comp setTimeZone:local];
猜你喜欢
  • 2017-08-16
  • 2014-10-01
  • 1970-01-01
  • 2013-06-19
  • 2014-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-21
相关资源
最近更新 更多