主要说获取当前时间,以及比较两个完整时间的大小
获取当前时间
说明:
- NSString获取的时间是当前时区的时间
- NSDate new 获取到的时间,为格林威治时间,下列是打印出来的日志
2016-04-27 22:14:19.128 NLPayment_V2[15634:612505] NSString 当前时间 =2016-04-27 22:14:19
2016-04-27 22:14:19.128 NLPayment_V2[15634:612505] NSDate当前时间 =2016-04-27 14:14:19 +0000
- NSString类型的当前时间
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateTime = [formatter stringFromDate:[NSDate date]];
NSLog(@"当前时间 =%@",dateTime);
- NSDate的当前时间
NSLog(@"当前时间 =%@",[NSDate new]);
比较两个完整的时间
- 调用的实例说明:实际交易中的退货操作,要将
退货时间
和当前时间
作对比,当前时间
必须在交易时间
后的至少一个工作日。 - 比较思想:获取交易时间,然后把交易时间的
时,分,秒
替换成23:59:59
- 然后利用 [DateA timeIntervalSinceDate: DateB] < 0.0f 来作判断
- [DateA timeIntervalSinceDate: DateB] < 0.0f 表示 DateA - DateB < 0
//判断退货时间是否为当天
- (BOOL)judgeRefundDateIsToday:(NSString *)transactionDateStr {
//2016-04-27 16:35:21
NSMutableString *lateDate = [NSMutableString new];
[lateDate appendString:[transactionDateStr substringToIndex:10]];
NSLog(@"%@", lateDate);
[lateDate appendString:@" 23:59:59"];
NSLog(@"%@", lateDate);
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"]; //指定当前时区
[dateFormatter setTimeZone:timeZone];
//将当前的时区时间String再转成标准的NSDate,转换后的时间是为格林威治时间,这样统一标准后才能用 timeIntervalSinceData比较
NSDate *date = [dateFormatter dateFromString:lateDate];
NSLog(@"%@", date);
NSLog(@"当前日期= %@",[NSDate new]);
if ([[NSDate new] timeIntervalSinceDate:date] < 0.0f) {
XLog(@"当天内退货");
return YES;
} else {
XLog(@"当日后退货");
return NO;
}
}