私はNSString
このようなものを持っています:
NSString *playTime = @"20:45";// GMT
NSDate
この文字列を(時間と秒のみ)に変換してから、デバイスのタイムゾーンに調整する必要があります。
例:
ユーザーデバイスのタイムゾーンがGMTに設定されている場合、次のような結果が必要です: @"20:45" ;
ユーザーデバイスのタイムゾーンがGMT + 2に設定されている場合、次のような結果が必要です: @"22:45" ;
私はNSString
このようなものを持っています:
NSString *playTime = @"20:45";// GMT
NSDate
この文字列を(時間と秒のみ)に変換してから、デバイスのタイムゾーンに調整する必要があります。
例:
ユーザーデバイスのタイムゾーンがGMTに設定されている場合、次のような結果が必要です: @"20:45" ;
ユーザーデバイスのタイムゾーンがGMT + 2に設定されている場合、次のような結果が必要です: @"22:45" ;
これを試して
NSString *gmtDateString = @"20:45";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[dateFormatter setDateFormat:@"HH:mm"];
//Now you have date in GMT time zone by default dateFormatter timezone would be in local time zone
NSDate *date = [dateFormatter dateFromString:dateString];
//set to local time zone
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
//Now you have string in localDate format
NSString *localDateString = [dateFormatter stringFromDate:date];
以下のコードは、ローカルタイムゾーンで時間を計算します。
私のタイムゾーンがGMT+05:30
そうだとすると、時間05:30
がなり00:00
ます。
NSString *playTime = @"20:45";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"HH:mm";
NSDate *date = [formatter dateFromString:playTime];
NSLog(@"%@",date);
ログは次のとおりです。 2000-01-01 15:15:00 +0000
要件に応じて、このコードを日付変換に使用します。
NSDateFormatter *dateFormat = [NSDateFormatter new];
[dateFormat setDateFormat:@"HH:mm"];
[dateFormat setTimeZone:[NSTimeZone localTimeZone]];
logDate = [dateFormat dateFromString:@"20:45"];
NSLog(@"Date %@",[dateFormat stringFromDate:logDate]);