-1

私はNSStringこのようなものを持っています:

 NSString *playTime = @"20:45";// GMT

NSDateこの文字列を(時間と秒のみ)に変換してから、デバイスのタイムゾーンに調整する必要があります。

例:

ユーザーデバイスのタイムゾーンがGMTに設定されている場合、次のような結果が必要です: @"20:45" ;

ユーザーデバイスのタイムゾーンがGMT + 2に設定されている場合、次のような結果が必要です: @"22:45" ;

4

3 に答える 3

1

これを試して

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];
于 2013-03-06T13:46:27.550 に答える
0

以下のコードは、ローカルタイムゾーンで時間を計算します。
私のタイムゾーンが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

于 2013-03-06T13:56:18.843 に答える
0

要件に応じて、このコードを日付変換に使用します。

   NSDateFormatter *dateFormat = [NSDateFormatter new];
   [dateFormat setDateFormat:@"HH:mm"];
    [dateFormat setTimeZone:[NSTimeZone localTimeZone]];
    logDate = [dateFormat dateFromString:@"20:45"];
     NSLog(@"Date %@",[dateFormat stringFromDate:logDate]);
于 2013-03-06T13:41:35.973 に答える