0

重複の可能性:
unix タイムスタンプから人間が読める相対時間と日付を取得しますか?

私が持っているのはNSTimeInterval過去のものだけです。それを " " や " "humanly readableのような " " 文字列に変換するにはどうすればよいですか?10 seconds ago3 hours ago

4

2 に答える 2

2

NSTimeInterval は秒を提供します。

秒を確認したら、% と / を使用して、日、時間、分、秒を見つけることができます。

このデモを参照してください:

NSInteger seconds = totalSecondsSinceStart % 60;
NSInteger minutes = (totalSecondsSinceStart / 60) % 60;
NSInteger hours = totalSecondsSinceStart / (60 * 60);
NSString *result = NSString stringWithFormat:@"%02ld hour %02ld minutues %02ld seconds ago", hours, minutes, seconds];

出力は次のようになります。

01 hours 34 minutes 49 seconds ago
于 2013-01-16T13:04:27.593 に答える
0

0 時間 0 分 34 秒が表示されないように、よりフォーマット化されています。

+(NSString *)returnRelativeTime:(NSString *)dateString
{
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    [formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
    NSDate *date = [formatter dateFromString:dateString];
    int timeSince = [date timeIntervalSinceNow] * -1;

    int days    = (timeSince / (3600 * 24));
    int hours   = (timeSince / 3600)- (days *24);
    int minutes = (timeSince % 3600) / 60;
//    int seconds = (timeSince % 3600) %  60;
//    return [NSString stringWithFormat:@"%02d:%02d:%02d",hours ,minutes, seconds];
    if (days >0) {
         return [NSString stringWithFormat:@"%01d days %01d hours ago",days, hours];
    }
    else if (hours == 0) {
        return [NSString stringWithFormat:@"%01dm ago", minutes];
    }
    else {
        return [NSString stringWithFormat:@"%01dh %01dm ago", hours ,minutes];
    }

}
于 2013-01-16T13:58:14.717 に答える