这个框架的灵感来源于 Moment.js。 其目标如下:
重要提示:此框架支持 iOS 9+、macOS 10.11+、tvOS 9+、watchOS 2+、Xcode 8 和 Swift 3。
SwiftMoment 兼容 Carthage 和 CocoaPods。 使用 CocoaPods,只需将其添加到您的 Podfile 中:
pod 'SwiftMoment'
SwiftMoment 也可以通过 Swift Package Manager 使用。 只需将其添加到您的 Package.swift 文件中的依赖项中:
let package = Package(
name: "MyPackage",
dependencies: [
...
.package(url: "https://github.com/akosma/SwiftMoment.git", from: "0.7.1"),
],
...
)
要使用此库,只需在您的应用程序中 import SwiftMoment
。
创建新的 moment 实例:
let now = moment()
let yesterday = moment("2015-01-19")
默认情况下,moments 使用当前日期和时间初始化。 您可以为未来的任何时刻或过去创建 moments;您可以通过以不同的格式传递字符串来实现:
let yesterday = moment("2015-01-19")
您也可以通过手动直接指定组件来实现:
let today = moment([2015, 01, 19, 20, 45, 34])
您还可以使用带有以下键的字典:
let obj = moment(["year": 2015,
"second": 34,
"month": 01,
"minute": 45,
"hour": 20,
"day": 19
])
当使用 [String: Int]
字典时,键的顺序无关紧要。 此外,只考虑上面的键,任何其他信息都会被忽略。
Swift 中还有一个对 Int
类型的扩展,用于直接从整数值创建 Duration
值:
let duration = 5.hours + 56.minutes
此库最重要的两个组件是 Moment
和 Duration
结构。 Moment
包装一个 NSDate
实例,而 Duration
包装一个 NSTimeInterval
值。
Moment
和 Duration
都符合 Comparable
协议,并包含所有必需的运算符。 此外,Moment
实例可以相互减去(产生一个 Duration
),并且 Duration
实例可以添加到 Moments
以创建新的 moments。
Moments
和 Durations
尽可能保持不可变。
Swift Moment 包含一组测试,展示了如何使用该框架的不同功能。
要在 macOS 环境中运行 Linux 测试,请使用包含的 Dockerfile。
docker build --tag swiftmoment .
docker run --rm swiftmoment
该项目包含一个 playground,用于学习如何使用该库。
DD
和 dd
不会产生相同的结果。很多人都在积极帮助开发这个库; 请查看 CONTRIBUTORS 文件以获取完整列表! 感谢大家:)
本项目根据 BSD 许可证分发。 有关详细信息,请参阅 LICENSE 文件。