1

次のコードを使用して、18900 の値を hh:mm:ss に変換しています。

残念ながら、返された値は 06:15:00 になるため、正しくないようです。

誰かがなぜそれがうまくいかないのかアドバイスしてもらえますか

ありがとう

-(NSString*)setHours:(double)result
{

NSLog(@"result %0.2f",result);
NSDate *date = [NSDate dateWithTimeIntervalSince1970:result];
                NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
                [formatter setDateFormat:@"hh:mm:ss"];
                 NSString *localizedString = [formatter stringFromDate:date];
                [formatter release];
                return localizedString;

}
4

4 に答える 4

4

真夜中からの秒数の値があるため、日付フォーマッターは必要ありません。これを試して:

-(NSString*)setHours:(double)result {
    int secs = result;
    int h = secs / 3600;
    int m = secs / 60 % 60;
    int s = secs % 60;

    NSString *text = [NSString stringWithFormat:@"%02d:%02d:%02d", h, m, s];
}
于 2013-01-03T18:49:14.823 に答える
2
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
于 2013-01-03T18:46:38.287 に答える
1

まず、ミリ秒を 1000 で割って、ミリ秒を秒に変換する必要があります。

   NSTimeInterval result= 18900/1000;
   NSDate *date = [NSDate dateWithTimeIntervalSince1970:result];
   NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
   [formatter setDateFormat:@"HH:mm:ss"];
   NSString *formattedDate=[formatter stringFromDate:date];
   NSLog(@"Formatted Date : %@",formattedDate);
于 2013-01-03T18:39:21.440 に答える
1

現在のタイムゾーンの結果が得られ、時刻は UTC で指定されます。つまり、あなたはGMTの1時間後だと思います。

この質問をチェックしてください: NSDate dateWithTimeIntervalSince1970 NOT return GMT/UTC time

于 2013-01-03T18:42:00.500 に答える