最近用到了时间戳,好久没有用过,所以有些生疏了,所以特将代码贴到此处,供遇到类似问题的人借鉴。
- (void)ExamPaperDict:(NSDictionary *)examPaperDict{
//设置答题剩余时间
NSString *subMitTime = [examPaperDict objectForKey:@"SUBMITTIME"];
NSString *str1 = [subMitTime substringFromIndex:11];
NSString *str2 = [str1 substringToIndex:8];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
[formatter setDateFormat:@"HH:mm:ss"];
NSDate* date = [formatter dateFromString:str2];
//把时间转化成时间戳
int timeSp1 = [date timeIntervalSince1970];
self.timeSp1 = timeSp1;
//创建定时器
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(showTime) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop]addTimer:timer forMode:NSRunLoopCommonModes];
[timer fire];
}
/*
* 定时器开始,此方法每隔1秒执行一次,显示剩余考试时间
*/
- (void)showTime{
//获取当前时间
NSDate *myDate = [NSDate date];
NSTimeZone *zone = [NSTimeZone systemTimeZone];
NSInteger interval = [zone secondsFromGMTForDate: myDate];
NSDate *localeDate = [myDate dateByAddingTimeInterval: interval];
NSString *myDataStr = [NSString stringWithFormat:@"%@",localeDate];
NSString *mystr1 = [myDataStr substringFromIndex:11];
NSString *mystr2 = [mystr1 substringToIndex:8];
NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init];
[formatter1 setDateStyle:NSDateFormatterMediumStyle];
[formatter1 setTimeStyle:NSDateFormatterShortStyle];
[formatter1 setDateFormat:@"HH:mm:ss"];
NSDate* date1 = [formatter1 dateFromString:mystr2];
int timeSp2 = [date1 timeIntervalSince1970];
int sp = self.timeSp1 - timeSp2;
if (sp >=0 ) {
// 时间戳转时间的方法
NSDate *confromTimesp = [NSDate dateWithTimeIntervalSince1970:sp];
NSString *labStr = [NSString stringWithFormat:@"%@",confromTimesp];
NSString *labstr1 = [labStr substringFromIndex:11];
NSString *labstr2 = [labstr1 substringToIndex:8];
self.endTimeLable1.text =[NSString stringWithFormat:@"离交卷时间:%@",labstr2];
}
}