TimeKit 1.2.1

TimeKit 1.2.1

hirano masaki 维护。



TimeKit 1.2.1

  • masaki

TimeKit

Build Status codecov SwiftPM Carthage compatible Version Platform

TimeKit 是一种类型安全的、简单轻量级的日期组件。

let calendar = Calendar.utc

// 1970/01/01(thu) 00:00 +00:00
let date = Date(timeIntervalSince1970: 0)

// TimeKit provides date components: `Day`, `Month`, `Year`, `Weekday`.
// These are compatible with `Date`.
let day = calendar.day(for: date)
let month = calendar.month(for: date)
let year = calendar.year(for: date)
let weekday = day.weekday

Day(日)、Month(月)、Year(年)、Weekday(星期)都与特定的日历或时区无关。要向用户表示这些组件,您必须在 Calendar 的上下文中进行解释。

let inUTC = Calendar.utc.startDate(of: day)           // 1970/01/01(thu) 00:00 +00:00
let inTokyo = Calendar.tokyo.startDate(of: day)       // 1970/01/01(thu) 09:00 +00:00
let inHonolulu = Calendar.honolulu.startDate(of: day) // 1969/12/31(wed) 14:00 +00:00

使用方法

将日期转换为 DayMonthYear

let calendar = Calendar.utc
let date = Date(timeIntervalSince1970: 0)

let day = calendar.day(for: date)
let month = calendar.month(for: date)
let year = calendar.year(for: date)

日期组件与其特定的历法或时区无关。您需要一个 Calendar 来从日期转换。

DayMonthYear 转换为日期

let startOfDay = calendar.start(of: day)
let startOfMonth = calendar.start(of: month)
let startOfYear = calendar.start(of: year)

与上面相同的原因,您需要一个 Calendar 来从日期组件转换为日期。

操作

// A day after / before `today`
let tomorrow = day.next
let yesterday = day.previous

// Addition and subtraction
let threeDaysLater = day + 3.day
let fourMonthsAgo = month - 4.month
let fiveYearsLater = year + 5.year

// Obtain the date components range
let days = 42.days(from: today)     // ["1970/01/01", "1970/01/02", "1970/01/03", ...]
let months = 12.months(from: month) // ["1970/01", "1970/02", "1970/03", ...]
let years = 3.years(from: year)     // ["1970", "1971", "1972"]

日期格式化

let dateFormatter = ...

let dayString = dateFormatter.string(from: day)
print(dayString) // => "1970/01/01(thu)"

let day = dateFormatter.day(from: "1970/01/01(thu)")
print(day) // => "1970/01/01(thu) in gregorian calendar"

需求

名称 版本
Xcode 10.2+
Swift 5.0+
iOS 10.0+
macOS 10.12+
tvOS 10.0+
watchOS 3.0+

安装

CocoaPods

pod 'TimeKit'

Carthage

github "studio-rookery/TimeKit"

Swift包管理器

.package(url: "https://github.com/studio-rookery/TimeKit", from: "1.2.0")