`
jiapumin
  • 浏览: 344832 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

NSDate的常用用法

 
阅读更多

1. 创建或初始化可用以下方法

    用于创建NSDate实例的类方法有

    + (id)date;

    返回当前时间

 

    + (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs;   

    返回以当前时间为基准,然后过了secs秒的时间

 

    + (id)dateWithTimeIntervalSinceReferenceDate:(NSTimeInterval)secs;

    返回以2001/01/01 GMT为基准,然后过了secs秒的时间

 

    + (id)dateWithTimeIntervalSince1970:(NSTimeInterval)secs;

    返回以1970/01/01 GMT为基准,然后过了secs秒的时间

 

    + (id)distantFuture;

    返回很多年以后的未来的某一天。

    比如你需要一个比现在(Now)晚(大)很长时间的时间值,则可以调用该方法。测试返回了4000/12/31 16:00:00

 

    + (id)distantPast;

    返回很多年以前的某一天。

    比如你需要一个比现在(Now)早(小)大很长时间的时间值,则可以调用该方法。测试返回了公元前0001/12/31 17:00:00

 

    用于创建NSDate实例的实例方法有

    - (id)addTimeInterval:(NSTimeInterval)secs;

    返回以目前的实例中保存的时间为基准,然后过了secs秒的时间

 

    用于初始化NSDate实例的实例方法有

    - (id)init;

    初始化为当前时间。类似date方法

 

    - (id)initWithTimeIntervalSinceReferenceDate:(NSTimeInterval)secs;

    初始化为以2001/01/01 GMT为基准,然后过了secs秒的时间。类似dateWithTimeIntervalSinceReferenceDate:方法

 

    - (id)initWithTimeInterval:(NSTimeInterval)secs sinceDate:(NSDate *)refDate;

    初始化为以refDate为基准,然后过了secs秒的时间

 

    - (id)initWithTimeIntervalSinceNow:(NSTimeInterval)secs;

    初始化为以当前时间为基准,然后过了secs秒的时间

 

 

2. 日期之间比较可用以下方法

    - (BOOL)isEqualToDate:(NSDate *)otherDate;

    与otherDate比较,相同返回YES

 

    - (NSDate *)earlierDate:(NSDate *)anotherDate;

    与anotherDate比较,返回较早的那个日期

 

    - (NSDate *)laterDate:(NSDate *)anotherDate;

    与anotherDate比较,返回较晚的那个日期

 

    - (NSComparisonResult)compare:(NSDate *)other;

    该方法用于排序时调用:

      . 当实例保存的日期值与anotherDate相同时返回NSOrderedSame

      . 当实例保存的日期值晚于anotherDate时返回NSOrderedDescending

      . 当实例保存的日期值早于anotherDate时返回NSOrderedAscending

 

 

3. 取回时间间隔可用以下方法

    - (NSTimeInterval)timeIntervalSinceDate:(NSDate *)refDate;

    以refDate为基准时间,返回实例保存的时间与refDate的时间间隔

 

    - (NSTimeInterval)timeIntervalSinceNow;

    以当前时间(Now)为基准时间,返回实例保存的时间与当前时间(Now)的时间间隔

 

    - (NSTimeInterval)timeIntervalSince1970;

    以1970/01/01 GMT为基准时间,返回实例保存的时间与1970/01/01 GMT的时间间隔

 

    - (NSTimeInterval)timeIntervalSinceReferenceDate;

    以2001/01/01 GMT为基准时间,返回实例保存的时间与2001/01/01 GMT的时间间隔

 

 

    + (NSTimeInterval)timeIntervalSinceReferenceDate;

    以2001/01/01 GMT为基准时间,返回当前时间(Now)与2001/01/01 GMT的时间间隔

 

 

4. 将时间表示成字符串

    - (NSString *)description;

    以YYYY-MM-DD HH:MM:SS ±HHMM的格式表示时间。

    其中 "±HHMM" 表示与GMT的存在多少小时多少分钟的时区差异。比如,若时区设置在北京,则 "±HHMM" 显示为 "+0800"

 

 

NSDateFormatter的格式串详解

a: AM/PM (上午/下午)

A: 0~86399999 (一天的第A微秒)

c/cc: 1~7 (一周的第一天, 周天为1)

ccc: Sun/Mon/Tue/Wed/Thu/Fri/Sat (星期几简写)

cccc: Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday (星期几全拼)

d: 1~31 (月份的第几天, 带0)

D: 1~366 (年份的第几天,带0)

e: 1~7 (一周的第几天, 带0)

E~EEE: Sun/Mon/Tue/Wed/Thu/Fri/Sat (星期几简写)

EEEE: Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday (星期几全拼)

F: 1~5 (每月的第几周, 一周的第一天为周一)

g: Julian Day Number (number of days since 4713 BC January 1) 未知

G~GGG: BC/AD (Era Designator Abbreviated) 未知

GGGG: Before Christ/Anno Domini 未知

h: 1~12 (0 padded Hour (12hr)) 带0的时, 12小时制

H: 0~23 (0 padded Hour (24hr))  带0的时, 24小时制

k: 1~24 (0 padded Hour (24hr) 带0的时, 24小时制

K: 0~11 (0 padded Hour (12hr)) 带0的时, 12小时制

L/LL: 1~12 (0 padded Month)  第几月

LLL: Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Nov/Dec 月份简写

LLLL: January/February/March/April/May/June/July/August/September/October/November/December 月份全称

m: 0~59 (0 padded Minute) 分钟

M/MM: 1~12 (0 padded Month) 第几月

MMM: Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Nov/Dec

MMMM: January/February/March/April/May/June/July/August/September/October/November/December

q/qq: 1~4 (0 padded Quarter) 第几季度

qqq: Q1/Q2/Q3/Q4 季度简写

qqqq: 1st quarter/2nd quarter/3rd quarter/4th quarter 季度全拼

Q/QQ: 1~4 (0 padded Quarter) 同小写

QQQ: Q1/Q2/Q3/Q4 同小写

QQQQ: 1st quarter/2nd quarter/3rd quarter/4th quarter 同小写

s: 0~59 (0 padded Second) 秒数

S: (rounded Sub-Second) 未知

u: (0 padded Year) 未知

v~vvv: (General GMT Timezone Abbreviation) 常规GMT时区的编写

vvvv: (General GMT Timezone Name) 常规GMT时区的名称

w: 1~53 (0 padded Week of Year, 1st day of week = Sunday, NB: 1st week of year starts from the last Sunday of last year) 一年的第几周, 一周的开始为周日,第一周从去年的最后一个周日起算

W: 1~5 (0 padded Week of Month, 1st day of week = Sunday) 一个月的第几周

y/yyyy: (Full Year) 完整的年份

yy/yyy: (2 Digits Year)  2个数字的年份

Y/YYYY: (Full Year, starting from the Sunday of the 1st week of year) 这个年份未知干嘛用的

YY/YYY: (2 Digits Year, starting from the Sunday of the 1st week of year) 这个年份未知干嘛用的

z~zzz: (Specific GMT Timezone Abbreviation) 指定GMT时区的编写

zzzz: (Specific GMT Timezone Name) Z: +0000 (RFC 822 Timezone) 指定GMT时区的名称

 

NSString lastModifiedString = @"Mon, 06 Jun 2011 12:47:05 GMT";
 NSDateFormatter *df = [[NSDateFormatter alloc] init];  
 //df.dateFormat = @"EEE',' dd MMM yyyy HH':'mm':'ss 'GMT'";
 df.dateFormat = @"EEE, dd MMM yyyy HH:mm:ss z";
 df.locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease];  
 df.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];  
 NSDate date = [df dateFromString:lastModifiedString]; 
分享到:
评论

相关推荐

    iOS NSDate资料

    本文将详细介绍`NSDate`类的常用功能及其使用方法。 #### 二、创建和初始化`NSDate`对象 ##### 1. 创建`NSDate`实例 通过`NSDate`提供的类方法可以轻松地创建出不同类型的日期对象。 - `+ (id)date;`:创建一个...

    NSDate-DaboExtension:NSDate分类

    实际使用时,你需要查阅`NSDate-DaboExtension`的文档或者源代码,了解具体实现的方法和用法。这些方法可以极大地提高开发效率,简化日期和时间的处理逻辑。在使用过程中,注意遵循Apple的命名规范和内存管理规则,...

    AFSwiftDateExtension:Swift 中对 NSDate 的扩展,让生活更轻松

    使用算术运算符添加/删除日期组件: +, -, +=, -= 咖喱函数使用下标访问单个或一组日期组件要求iOS7 或以上斯威夫特 1.2用法直接从组件创建日期在 SWIFT 中采用默认参数值可以在创建日期时省略小时、分钟和秒参数,...

    新手入门常用的iPhone代码

    #### 四、NSDate的使用 `NSDate`类用于表示特定的时间点。它提供了多种方法来获取、创建和操作日期和时间。例如获取当前日期: ```objective-c NSDate *today = [NSDate date]; ``` 或者计算未来的某个日期: ```...

    ios-iOS类目常用类目.zip

    这对于扩展系统提供的基础类或者第三方库的功能非常有用,比如给NSArray添加排序方法,给NSDate添加格式化日期的便捷方法等。 二、类目的结构 一个类目通常由两部分组成:头文件(.h)和实现文件(.m)。头文件中...

    iOS 常用公共方法

    - 使用 `NSDate` 表示日期,`NSCalendar` 进行日历计算。 - `NSDateFormatter` 用于日期字符串的格式化,如:`NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM...

    NSDate-Helpers:NSDate上的类别,其中包括处理日期和时间的有用方法

    NSDate上的类别,包括使用日期和时间的有用方法。 TimeZone和DateFormat有ENUM : typedef NS_ENUM ( NSUInteger , NSDateTimeZone) { NSDateTimeZoneUTC, NSDateTimeZoneGMT, }; typedef NS_ENUM ( NSUInteger...

    iOS NSDate中关于夏令时的坑

    下面是一些常用的方法: ### 时间戳转字符串 ```objective-c +(NSString *)timeStampConversionNSString:(NSString *)timeStamp{ NSDate *date = [NSDate dateWithTimeIntervalSince1970:[timeStamp longLongValue...

    ios-平时项目常用分类.zip

    6. **NSDate+Format**:日期格式化,添加`- (NSString *)stringWithFormat:(NSString *)format`方法,使得日期转换更加灵活。 7. **NSObject+PropertyCopy**:便利的属性复制方法,`- (void)...

    iOS常用的Category分类

    在iOS开发中,Category是一种强大的工具,...适当的时候,可以使用Category结合Category的Extension(匿名分类)来实现私有方法,以保持代码的封装性。总之,熟练掌握和运用Category是提升iOS开发效率的关键技能之一。

    一些常用的工具类

    "一些常用的工具类"这个主题,显然是关于在Objective-C或者Swift中使用Category来增强系统库的能力。 1. **Category的定义与作用** Category是Objective-C的一个强大特性,它允许我们为已存在的类添加方法,而不必...

    iOS常用的类别工具类

    - 如果需要覆盖父类方法,应优先考虑使用子类继承。 - 考虑性能影响,类别中添加的方法会增加类的加载时间。 通过合理地使用类别,开发者可以在iOS项目中构建一个强大的工具箱,提高代码复用性,简化代码结构,...

    一些常用iOS开发的工具类.zip

    NSDate、NSCalendar、NSDateComponents等原生类在处理日期时略显繁琐,所以工具类通常会提供便捷的日期格式化和比较方法。 5. **图片处理**:UIImage的扩展可能包含图片的压缩、裁剪、缓存等功能,这些对于优化应用...

    ios-常用功能集合.zip

    iOS开发中处理时间时,通常会用到Foundation框架中的NSDate、NSCalendar、NSTimeInterval等类。时间转换包括将字符串转换为日期对象,或将日期对象转换为字符串,这需要用到NSDateFormatter。时间比较则涉及到了...

    IOS开发常用的工具类.zip

    3. **日期和时间处理**:NSDate的工具类通常包含日期格式化、比较、计算时间差等方法,简化了时间相关的复杂逻辑。 4. **网络请求**:网络请求是iOS应用中常见的任务,工具类可能封装了URLSession或第三方库如...

    ios开发 简单demo(包含动画、时钟、计算器和常用UI界面)

    开发者可以使用`UIView`的`animateWithDuration`方法来执行简单的动画,或者使用`CAAnimation`类进行更复杂的操作。例如,你可以实现视图平移、旋转、缩放等效果,让应用更具动态感。 2. **时钟**:创建一个时钟...

    面试题第3篇1

    首先,我们需要创建一个 NSDateFormatter 对象,并设置其 dateFormat 为 @"yyyy-MM-dd",这是一个常用的日期格式,然后我们可以使用这个 formatter 对象将字符串时间转换为 NSDate 对象。在上面的代码中,我们可以...

    整合多个常用控件案例

    使用方法: 复制文件夹BFKit,添加依赖库AudioToolbox framework,导入头文件"BFKit.h"后开始使用。 目前支持的: Foundation: NSArray NSDate NSFileManager NSMutableArray NSNumber ...

    iOS常用category

    - **增加分类**:为系统类添加实用方法,比如NSDate+Extension可以添加日期处理的便捷方法。 - **分类组织代码**:将相似功能的方法归类到一个Category中,使代码结构更清晰。 - **私有方法**:在Category中定义...

    iOS类的分类方法

    例如,为NSDate添加一个方便的时间格式化方法,或者为NSArray添加一个快速查找元素的类别方法。 8. **注意点** - 类别不能添加实例变量。 - 类别的方法可能会覆盖原有类的方法,因此在设计时要注意避免冲突。 - ...

Global site tag (gtag.js) - Google Analytics