从ObjC中的Seconds获取NSDate

时间:2013-03-07 04:05:22

标签: objective-c nsdate nsdateformatter

我的秒数是54000。   我如何得到时间为下午3:00?

我可以使用任何dateformatter来获取它吗?

由于

2 个答案:

答案 0 :(得分:10)

假设给定秒数在本地时区,并且您想要转换为本地时区。

NSInteger timeInSeconds = 54000;

NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:timeInSeconds]];

NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"hh:mm:ss a"];

NSString *dateString = [formatter stringFromDate:date];

答案 1 :(得分:0)

假设您希望在“正常”日(即没有时区更改的日期)根据当前区域设置格式化时间,

double seconds = 54000;

NSDateFormatter * fmt = [NSDateFormatter new];
[dateFormatter setDateStyle:NSDateFormatterNoStyle];
[dateFormatter setTimeStyle:NSDateFormatterLongStyle];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:seconds];
NSString * s = [fmt stringFromDate:date];

// If you are not using ARC,
[fmt release];