2016-05-27 12 views
0

ich diesen Code verwenden für ZeitzoneWie speichere ich nur die Zeitzone ohne GMT?

NSMutableArray *arrResult = [NSMutableArray new]; 
    NSDateFormatter *dateFormatter = [NSDateFormatter new]; 
    NSDate *myDate = [NSDate date]; 
    [dateFormatter setDateStyle:NSDateFormatterLongStyle]; 
    [dateFormatter setTimeStyle:NSDateFormatterLongStyle]; 
    [dateFormatter setDateFormat:@"ZZZ"]; 
    [[NSTimeZone knownTimeZoneNames] enumerateObjectsUsingBlock:^(NSString * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { 
     NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:obj]; 
     [dateFormatter setTimeZone:timeZone]; 
     NSString *dateString = [dateFormatter stringFromDate: myDate]; 
     NSMutableString *mu = [NSMutableString stringWithString:dateString]; 
     [mu insertString:@":" atIndex:3]; 
     NSString *strResult = [NSString stringWithFormat:@"(GMT%@)%@",mu,obj]; 
     [arrResult addObject:strResult]; 


    }]; 
    NSLog(@"%@", arrResult); 

die Antwort dieses Codes bekommen ist wie das wie das, was ich

will
"(GMT+01:00)Africa/Libreville", 
    "(GMT+00:00)Africa/Lome", 
    "(GMT+01:00)Africa/Luanda", 
    "(GMT+02:00)Africa/Lubumbashi", 
    "(GMT+02:00)Africa/Lusaka", 
    "(GMT+01:00)Africa/Malabo", 
    "(GMT+02:00)Africa/Maputo", 
    "(GMT+02:00)Africa/Maseru", 
    "(GMT+02:00)Africa/Mbabane", 
    "(GMT+03:00)Africa/Mogadishu", 
    "(GMT+00:00)Africa/Monrovia", 
    "(GMT+03:00)Africa/Nairobi", 
    "(GMT+01:00)Africa/Ndjamena", 
    "(GMT+01:00)Africa/Niamey", 
    "(GMT+00:00)Africa/Nouakchott", 
    "(GMT+00:00)Africa/Ouagadougou", 
    "(GMT+01:00)Africa/Porto-Novo", 
    "(GMT+00:00)Africa/Sao_Tome", 
    "(GMT+02:00)Africa/Tripoli", 
    "(GMT+01:00)Africa/Tunis", 

i diese Art in meinem Label

zeigen enter image description here

aber was ich tun muss ist, wenn wir nur auf Speichern (Afrika/Tripoli) klicken, diesen Teil in der Datenbank wi Ich werde gerettet, ich bekomme nicht, wie ich das mache. bitte helfen Sie mir

+1

NSString * strResult = [NSString string: @ "(GMT% @)% @ ", mu, obj]; Sie GMT-Zeichenfolge hinzufügen –

+0

Sie bekommen nicht genau das, was Sie wollen? Möchten Sie eine bestimmte Zeitzone von dieser Liste? – Lion

+0

nein, was ich bekomme Zeitzone ist es richtig, aber ich muss nur Afrika/Niamey speichern, dieser Teil der Liste Nicht (GMT + 01: 00) .. –

Antwort

0

ich die Antwort bekam nach vielen versuchen, wenn jemand möchte dies dann hier sehen: -

NSString *zoneString = @"(GMT+13:00)Pacific/Tongatapu" 

NSUInteger location = [zoneString rangeOfString:@")"].location+1; 

    NSLog(@"Trimed string:%@",[zoneString substringFromIndex:location]); 

Trimed string:Pacific/Tongatapu 
0

Wenn Sie nicht (GMT+01:00) in die Liste dieser Klammer wollen, dann können Sie String wie machen,

NSString *strResult = [NSString stringWithFormat:@"%@",obj]; 
    [arrResult addObject:strResult]; 

So, dass ein Teil Klammer wird nicht kommen.

Wenn Sie diese Klammer Teil und Namen beide zusammen auch für andere Aufgabe wollen, dann können Sie ein anderes Array namens arrResult2 machen und eine andere Zeichenfolge namens strResult2 machen und tun, wie ich oben erwähnt.

Sie haben also zwei Arrays. Einer (arrResult) hat sowohl diese Klammer als auch Namen und eine (arrResult2) nur Namen.

Wenn Sie Zeichenfolge wollen, dann

NSString *str = @"(GMT+00:00)Africa/Lome"; 

NSString *newStr = [str substringFromIndex:11]; 

NSLog(@"new str : %@",newStr); 

Ich fand, trennen, dass jede Saite Halterung an 11th index hat zu schließen, so dass Sie es verwenden können Teilzeichenkette von Original zu erhalten.

Hope this helfen :)

+0

danke für deine Antwort @Lion –

+0

du bist willkommen ... :) – Lion