ISO8601 0.6.0

ISO8601 0.6.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后一次发布2016年6月

Sam Soffes 维护。



ISO8601 0.6.0

  • Sam Soffes

为 iOS & Mac 提供快速 ISO8601 日期解析器和编写器。

安装

Carthage 是推荐安装 ISO8601 的方法。将以下内容添加到您的 Cartfile 中:

github "soffes/ISO8601"

您也可以使用 CocoaPods 进行安装

pod 'ISO8601'

对于手动安装,我建议将项目作为子项目添加到您的项目或工作区中,并将框架作为目标依赖项添加。

用法

首先,导入适当的头文件

@import ISO8601; // Use #import <ISO8601/ISO8601.h> if you're using CocoaPods

此库使用 NSDateComponents 进行读取和写入。以下是一个示例:

// Reading
NSDateComponents *dateComponents = [ISO8601Serialization dateComponentsForString:@"1999-05-19T23:55:21+09:00"];

// Writing
NSString *ISO8601String = [ISO8601Serialization stringForDateComponents:dateComponents];

存在一个 NSDate 分类,用于方便的转换

// Reading
NSDate *date = [NSDate dateWithISO8601String:@"1999-05-19T23:55:21+09:00"];

// Writing
NSString *ISO8601String = [date ISO8601String];

如果您需要更多的转换控制或需要知道输入的时间区域,您可以使用类别提供的先进方法

// Reading
NSTimeZone *timeZone;
NSDate *date = [NSDate dateWithISO8601String:@"1999-05-19T23:55:21+09:00" timeZone:&timeZone usingCalendar:calendarOrNil];

// Writing
NSString *ISO8601String = [date ISO8601StringWithTimeZone:timeZoneOrNil usingCalendar:calendarOrNil];

说明

NSDateComponents 是核心数据结构,因为 NSDate 未能很好地保留时区信息。

值得注意的是,如果某个值不在输入字符串中,则 NSDateComponents 中的值将为 nil。例如,1999-05-19T23:55:21 将具有 nil 时区,但 1999-05-19T23:55:21+00:001999-05-19T23:55:21Z 将具有 UTC 时区。

+[NSDate dateWithISO8601String:] 分类将始终返回 UTC 日期。如果您想要另一个时区的日期,应使用 +[NSDate ISO8601StringWithTimeZone:usingCalendar:](您可以传递 nil 作为日历参数以使用当前日历)。

享受吧。