NJISO8601 0.2.2

NJISO8601 0.2.2

测试已测试
Lang语言 Obj-CObjective C
许可 BSD
发布最新发布2015年3月

Eric Jensen维护。



NJISO8601 0.2.2

  • Eric Jensen

ISO 8601 的 NSFormatter

一个 Cocoa NSFormatter 子类,用于将 ISO 8601 格式的字符串转换为 NSDate,反之亦然。

解析器使用 re2c 实现。感谢 re2c,它的速度比 NSDateFormatter 要快得多。

安装

请注意,生成的解析器已直接提交到这个仓库。这可能不是最佳选择。

已经尝试使用 Cocoapods 的预构建命令来解决这个问题,但效果有限。请查看 podspec 以了解尝试的解决方案。

使用方法

要将 ISO 8601 字符串转换为 NSDate。您可以使用 NJISO8601DateFromString() 函数而不需要任何配置。

NSDate *date = NJISO8601DateFromString(@"2011-02-27T11:03:06+09:00");

或者,您可以像使用 NSDateFormatter 一样使用 NJISO8601Formatter。

NJISO8601Formatter *formatter = [[NJISO8601Formatter alloc] init];

NSDate *date = [formatter dateFromString:@"2011-02-07T11:03:06+09:00"];

将 NSDate 转换为 ISO 8601 格式的字符串。

NJISO8601Formatter *formatter = [[NJISO8601Formatter alloc] init];

NSString *string = [formatter stringFromDate:date];

此外,您可以像这样自定义输出格式:

[formatter setDateStyle:NJISO8601FormatterDateStyleWeekExtended];
[formatter setTimeZoneStyle:NJISO8601FormatterTimeZoneStyleExtended];
[formatter setFractionSeparator:NJISO8601FormatterFractionSeparatorDot];
[formatter setFractionDigits:6];
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:(8 * 60 * 60)]];

支持格式

  • 日历日期
  • 序数日期
  • 周日期
  • 带有小数分数的本地时间
  • 午夜
  • 时区

不支持格式

  • BC 日期
  • 序数日期扩展表示的基本格式(年 > 9999)
  • 带有闰秒的本地时间(秒 >= 60.0)
  • 时间段
  • 持续时间
  • 周期性时间段