在iOS开发过程中,难免会需要获取手机系统时间,比如:获取手机系统时间(年、月、日、时、分、秒、毫秒等等)需求。
获取手机系统时间相对并不难实现,其获取方式通过开发库所提供的NSDate、NSCalendar等类似于Android中的Date、Calendar等时间类。
TimeUtil.h
#import <UIKit/UIKit.h>
@class TimeUtil;
/**
* 获取时间工具类
**/
@interface TimeUtil : NSObject
/**
* 获取当前时间DateComponents对象
*/
+(NSDateComponents *)getDateComponents;
/**
* 获取当前时间,格式:YYYY-MM-dd HH:mm:ss
**/
+(NSString *)getCurrentTimeString;
/**
* 获取当前时间:秒
**/
+(long)getCurrentTimeSecond;
/**
* 获取当前时间:毫秒
**/
+(long)getCurrentTimeMillisecond;
/**
* 获取当前时间:秒
**/
+(double)currentTimeSecond;
/**
* 判断是否同一天
* 传入时间:秒
*/
+(BOOL)isSameDay:(long)fromTime compareTime:(long)compareTime;
@end
TimeUtil.m
#import <Foundation/Foundation.h>
#import "TimeUtil.h"
@implementation TimeUtil
+ (NSDateComponents *)getDateComponents{
NSDate *date = [NSDate date];
NSCalendar *cal = [NSCalendar currentCalendar];
unsigned int unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
NSDateComponents *dc = [cal components:unitFlags fromDate:date];
return dc;
}
+ (NSString *)getCurrentTimeString{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// ----------设置你想要的格式,hh与HH的区别:分别表示12小时制,24小时制
[formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSDate *datenow = [NSDate date];
NSString *currentTimeString = [formatter stringFromDate:datenow];
return currentTimeString;
}
+ (long)getCurrentTimeSecond{
return (long)[self currentTimeSecond];
}
+ (long)getCurrentTimeMillisecond{
return (long)([self currentTimeSecond] * 1000);
}
+ (double)currentTimeSecond{
NSDate* date = [NSDate dateWithTimeIntervalSinceNow:0];
NSTimeInterval timeSecond=[date timeIntervalSince1970];
return timeSecond;
}
+ (BOOL)isSameDay:(long)fromTime compareTime:(long)compareTime{
// 传入时间:秒
NSCalendar *calendar = [NSCalendar currentCalendar];
unsigned unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
NSDateComponents *fromTimeComponents = [calendar components:unitFlags fromDate:[NSDate dateWithTimeIntervalSince1970:fromTime]];
NSDateComponents *compareTimeComponents = [calendar components:unitFlags fromDate:[NSDate dateWithTimeIntervalSince1970:compareTime]];
return [fromTimeComponents year] == [compareTimeComponents year] && [fromTimeComponents month] && [compareTimeComponents month] && [fromTimeComponents day] == [compareTimeComponents day];
}
@end
以上提供的是获取手机系统时间的工具类,同时还添加了“判断是否同一天”的方法(可在工具类中添加其他关于时间的操作,这里就交给你们来进行扩展啦~)。