在ios开发中我们经常需要用到时间,ios提供了获取时间的一些方法,但是需要经过一些处理才能得到我们想要的效果!
NSDate *date = [NSDate date]; // 获得时间对象
date打印出的结果:2016-03-17 09:36:47 +0000 这种格式
获取的这个时间是格林威治(GMT)时间(不懂请百度),我们需要处理成我们本地的时间
NSTimeZone *zone = [NSTimeZone systemTimeZone];//系统时区
NSInteger interval = [zone secondsFromGMTForDate: date];//相对于GMT时间偏移的秒数
NSDate *localeDate = [date dateByAddingTimeInterval: interval];
localeDate打印的就是你所在的当地时间:2016-03-17 17:42:27 +0000
得到我们想要的时间以后我们需要将它转化成我们想要的字符串格式
NSDateFormatter *forMatter = [[NSDateFormatter alloc] init];
[forMatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateStr = [forMatter stringFromDate:date];
dateStr打印出的结果(年月日小时分钟秒自行设置):2016-03-17 17:45:48
有时候的需求是活动倒计时方式,比如说离活动还有多少天多少小时等等,这时候我们用时间戳来处理会比较方便,只需要把活动开始和活动结束获取的时间戳进行运算后,转化成我们所需要的时间即可,提供一个简单的方法:
- (double)timeDifferenceWithEarlyTimeStamp:(NSString *)earlyTimeStamp andLateTimeStamp:(NSString *)lateTimeStamp {
double timeDifference = lateTimeStamp.doubleValue - earlyTimeStamp.doubleValue;
double hours = timeDifference/3600.0;//看需要转化成需要的时间格式
return hours;
}