私は検索しましたが、私のような正確な質問が見つからなかったので、ここには何もありません:
XML フィードから取得したキーを含む NSString があります。キーは 24 時間形式の時刻です (例: 13:30 または 15:00)。NSString を NSDate に変換し、デバイスの設定タイムゾーンに基づいて適切なタイムゾーンに変換したいと考えています。キーは Unicode HH:mm (24:00) なので、これが正常に機能しない理由が気になります。
機能するはずの基本的なアウトラインを既に取得していますが、残念ながら機能しません。2 番目の NSLog (Got NS Date) は null を返し、最後のログは奇妙な数字 (正確には 1969-12--2147483629 -596:-31:-23 +0000) を返します。
前もって感謝します、
NSString *dateString = [dict objectForKey:@"24hrdate"];
NSLog(@"NSString Date: %@", dateString);
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm"];
NSDate *sourceDate = [formatter dateFromString:dateString];
NSLog(@"Got NS Date: %@", sourceDate);
NSTimeZone *sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
NSTimeZone *destinationTimeZone = [NSTimeZone systemTimeZone];
NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:sourceDate];
NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:sourceDate];
NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;
NSDate* destinationDate = [[[NSDate alloc] initWithTimeInterval:interval sinceDate:sourceDate] autorelease];
NSLog(@"Final Date: %@", destinationDate);