iOS 9:添加GMT时间值

时间:2016-08-29 07:06:08

标签: ios objective-c iphone nsdate nsdateformatter

我在google上搜索了如何在Objective-C中获得GMT时间,我得到了这个:

+ (NSString *)GetGMTTime{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm";

NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[dateFormatter setTimeZone:gmt];

return [dateFormatter stringFromDate:[NSDate date]];}

有没有办法添加或设置GMT时间? (GMT + 5)

3 个答案:

答案 0 :(得分:3)

最灵活的方法是使用timeZoneForSecondsFromGMT。这比使用 GMT + X 这样的字符串更像错字

这是一个非常有效的例子:

+ (NSString *)GetGMTTime{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm";

    NSTimeZone *gmt = [NSTimeZone timeZoneForSecondsFromGMT:(60*60*5)];
    [dateFormatter setTimeZone:gmt];

    return [dateFormatter stringFromDate:[NSDate date]];

}

返回 2016-08-29T12:13 (当GMT时间 2016-08-29T7:13 时)

注意:60*60*5表示5 hours X 60 minutes X 60 seconds

答案 1 :(得分:1)

可以这样试试。

 NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"GMT+5:30"];

答案 2 :(得分:0)

如果您创建NSDate实例,则默认情况下它将以UTC or GMT格式返回日期。

现在,当您通过任何日期格式化程序将此日期转换为字符串时,则返回的字符串(日期)将位于本地时区(即设备的时区)。

您可以使用它的名称创建自定义时区以获取该时区的日期。

  NSDate *date = [NSDate date]; //give current date in UTC or GMT
NSLog(@"current date in gmt : %@",date);

NSDateFormatter *df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSString *dateInStrFormat = [df stringFromDate:date];  // this date(string format) will be in current timezone that was set in your device and

NSLog(@"current date in local or device's default timezone : %@",dateInStrFormat);

NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"Asia/Kolkata"];

NSLog(@"timezone : %@",timeZone);

[df setTimeZone:timeZone];

NSString *dateInCustomTimeZone = [df stringFromDate:date]; // this will return date in Asia/Kolkata's timezone

NSLog(@"date in custom timezone : %@",dateInCustomTimeZone);

NSLog(@"timezone : %@",timeZone);将打印类似Asia/Kolkata (IST) offset 19800的内容。如果您将19800除以3600,那么gmt就会被(+/- 5.30 etc) NSTimeZone *timezone1 = [NSTimeZone timeZoneWithName:@"GMT+5:30"]; NSLog(@"timezone : %@",timezone1); NSTimeZone *timeAone2 = [NSTimeZone timeZoneForSecondsFromGMT:60*60*5.5]; NSLog(@"timezone : %@",timeAone2);

Link for different timezone names

或者你可以得到时区,

var count = 0;
for(var key in vm.result){
  for(var key1 in vm.result[key].notificationDetails){
     if(vm.result[key].notificationDetails[key1].isRed)
         count++ ;

  }
}

console.log(count);