Kali 1.1.0

Kali 1.1.0

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最后发布2017年1月
SwiftSwift 版本3.0
SPM支持 SPM

Christopher Jones 维护。



Kali 1.1.0

  • 作者:
  • Christopher Jones

Kali

Kali 是一个用 Swift 编写的 iOS 库,旨在将原生日期对象引入 Swift 库。许多类型,如 StringInt,已经在 Swift 中从 Objective-c 找到了原生类型,但 NSDate 没有这样的待遇。

Kali 提供了 DateTime,这是一个对象,旨在将 NSDateNSCalendarNSTimeZone 的复杂性封装在一个更简单的接口中,使日期的交互比以前更容易、更安全。与其它库不同,Kali 并不旨在扩展 NSDate 或其他 Swift 原生类型;相反,它旨在创建一个新的、不可变的 Swift 类型,以更容易、更安全的方式封装在 NSDate 中找到的复杂功能。

要求

Kali 仅与 Swift 2 和 Xcode 7 及以上版本兼容。不支持 Swift 任何之前的版本。

使用

DateTime

DateTime 通过尽可能模仿 NSDate API 来实现尽可能简单和无缝。

例如,要创建一个包含当前日期和时间的 DateTime 实例,只需这样做

let currentDate = DateTime()

很多时候,我们需要将字符串转换为日期,比如从 API 调用中。通常,这需要使用 NSDateFormatterNSCalendar 来获取所需的结果。但是,使用 DateTime,这简单到只需

let date = DateTime(string: "12/25/2001 14:23:23", format: "MM/dd/yyyy HH:mm:ss")

有时,我们只是想通过指定组成部分的值来简单地创建一个日期

let datetime = DateTime(month: 12, day: 25, year: 2001, hour: 12, minute: 23, second: 23)

访问日期值的各个组成部分很简单

let datetime = DateTime(month: 12, day: 13, year: 2000)
print(datetime.month)    // 12
print(datetime.day)     // 13
print(datetime.year)    // 2000

DateTime 实现 RawRepresentable,并可以使用自 1970 年 1 月 1 日起的秒数时间间隔方便地进行初始化。

DateTime 实现 Comparable,这使得可以使用 ==!=>>=<<= 等比较操作符轻松比较两个 DateTime 对象。

DateTime 初始化可以接受一个可选的 NSTimeZone 参数。如果未指定,默认为设备时区。时区属性是 DateTime 的一个基本组成部分,确保您的 DateTime 值正好如预期的那样。

最后,DateTime 是不可变的:一旦初始化,其状态就不能修改或更改。对 DateTime 对象(例如通过添加分钟或日组成部分)所做的任何潜在修改都将导致新的 DateTime 对象。

TimeSpan

TimeSpans 用于以简单的方式来向 DateTime 对象添加时间,也可以用于确定两个 DateTime 之间的时间差。

向 DateTime 添加时间值很简单。如果您只需要向 DateTime 添加单个组件

let datetime = DateTime()
let fiveMinutesFromNow = dateTime.addMinutes(5)

对于更复杂的时间间隔,您可以使用 addTimespan

let datetime = DateTime()
let timespan = TimeSpan(days: 0, hours: 1, minutes: 5, seconds: 1)

let newDateTime = datetime.addTimespan(timespan)

确定两个日期之间的时间间隔同样简单。如果您想确定两个日期之间过去了多少时间

let firstDateTime = DateTime()
let secondDateTime = firstDateTime.addMinutes(-5)

let timespan = firstDateTime.timespanSinceDate(secondDateTime)

print(timespan.minutes) // 5

TimeSpan 实现 RawRepresentable,并且可以使用秒的时间间隔方便地进行初始化。

安装

Kali 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中

pod "Kali", '~> 1.0'

贡献

欢迎所有对改进此库的贡献!

请随意为此库创建一个拉取请求以添加或修复功能。在贡献时,请确保遵循库的一般风格:使用 self 来表示所有类级属性,为 AppleDocs 记录所有公共头文件等。

如果您不想直接贡献,但想增强库或发现了一个错误,请提交一个问题。

作者

Christopher Jones,电子邮件:[email protected]

许可证

Kali 在 MIT 许可证下可用。查看 LICENSE 文件以获取更多信息。