IOS 获取手机系统时间

在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

以上提供的是获取手机系统时间的工具类,同时还添加了“判断是否同一天”的方法(可在工具类中添加其他关于时间的操作,这里就交给你们来进行扩展啦~)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值