CFDate学习笔记

1、CFDateRef

  CFDateRef是储存日期和时间的一种数据类型,可与NSDate相互转换如:

    NSDate *currDate = [NSDate date];
    CFDateRef currDateRef = (CFDateRef)currDate;
    NSDate *currDate2 = (NSDate *)currDateRef;

2、CFAbsoluteTime  

  CFAbsoluteTime是一个double类型。它的值取决于 基准值为2001-1-1 00:00:00GMT的时间的秒数。一个数值可以表示一个对应的日期和时间。

  它可与CFDateRef相互转化,方法如下:

CF_EXPORT
CFDateRef CFDateCreate(CFAllocatorRef allocator, CFAbsoluteTime at);

CF_EXPORT
CFAbsoluteTime CFDateGetAbsoluteTime(CFDateRef theDate);

  获取当前时间的CFAbsoluteTime值:

CFAbsoluteTime CFAbsoluteTimeGetCurrent(void);

  根据CFAbsoluteTime来获取是周几、一个月的第几天、一年的第几周:

CF_EXPORT
SInt32 CFAbsoluteTimeGetDayOfWeek(CFAbsoluteTime at, CFTimeZoneRef tz);

CF_EXPORT
SInt32 CFAbsoluteTimeGetDayOfYear(CFAbsoluteTime at, CFTimeZoneRef tz);

CF_EXPORT
SInt32 CFAbsoluteTimeGetWeekOfYear(CFAbsoluteTime at, CFTimeZoneRef tz);

3、CFGregorianDate  

  CFGregorianDate是一个结构体,包含了年月日,时分秒六个字段。我们可以通过设定timeZone来将它与CFAbsoluteTime进行转换

CF_EXPORT
CFAbsoluteTime CFGregorianDateGetAbsoluteTime(CFGregorianDate gdate, CFTimeZoneRef tz);

CF_EXPORT
CFGregorianDate CFAbsoluteTimeGetGregorianDate(CFAbsoluteTime at, CFTimeZoneRef tz);

4、CFGregorianUnits

  CFGregorianUnits是类似于CFGregorianDate的结构体,但是它们表示的意思完全不同。CFGregorianUnits是表示时间间隔,因此它可以表示更大的值,比如

超过24的hour对它是有意义的。我们可以通过下面的方法使用改对象进行时间的相加。

CFAbsoluteTime CFAbsoluteTimeAddGregorianUnits(CFAbsoluteTime at, CFTimeZoneRef tz, CFGregorianUnits units);

 

  先写到这里,以后再补充

转载于:https://www.cnblogs.com/fengnianji/archive/2012/11/26/learnCFDate.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值