Dates是一个小巧的Swift库,包含实用的日期扩展和函数,可加速您的开发流程。
功能
- 当您需要处理日期时,会让您的工作变得容易得多。
- Dates是一个轻量级库。您可以在咖啡时间轻松浏览文件。
使用
处理日期
let date = Date()
date.startOfDay // 2020-01-22 00:00:00
date.endOfDay // 2020-01-22 23:59:59
date.isWeekend // false
date.noon // 2020-01-22 12:00:00
date.tomorrow // 2020-01-23 12:00:00
date.yesterday // 2020-01-21 12:00:00
date.hoursLeftFromDay // 5
date.minutesLeftFromDay // 345
date.secondsLeftFromDay // 20755
处理周
let date = Date()
date.startOfWeek // 2020-01-20 00:00:00
date.endOfWeek // 2020-01-26 23:59:59
date.daysLeftFromWeek // 4
date.hoursLeftFromWeek // 101
date.minutesLeftFromWeek // 6095
date.secondsLeftFromWeek // 365722
处理月份
let date = Date()
date.startOfMonth // 2020-01-01 00:00:00
date.endOfMonth // 2020-01-31 23:59:59
date.currentMonth // 1
date.nextMonth // 2
date.lastMonth // 12
date.month(byAdding: 3) // 4
date.weeksInMonth // 5
date.daysInMonth // 31
date.hoursInMonth // 743
date.minutesInMonth // 44639
date.secondsInMonth // 2678399
date.weeksInGivenMonth(month: 1) // 5
date.daysInGivenMonth(month: 1) // 31
numberOfGivenDayInMonth(selectedDay: .Wednesday) // 4
date.workdaysInMonth() // 23
date.weekendDaysInMonth() // 8
date.daysLeftFromMonth() // 9
date.hoursLeftFromMonth() // 220
date.minutesLeftFromMonth() // 44639
date.secondsLeftFromMonth() // 2678399
使用年
let date = Date()
date.startOfYear // 2020-01-01 00:00:00
date.endOfYear // 2020-12-31 23:59:59
date.currentYear // 2020
date.lastYear // 2019
date.nextYear // 2021
date.year(byAdding: 3) // 2023
date.weeksInYear // 53
date.daysInYear // 365
date.hoursInYear // 8783
date.minutesInYear // 527039
date.secondsInYear // 31622399
date.numberOfGivenDayInYear(selectedDay: .Friday) // 53
date.workdaysInYear() // 262
date.weekendDaysInYear() // 104
获取本地日期
返回用户时区表示的日期。
let date = Date().localDate()
格式化
创建一个可以与计时器一起显示的字符串
let time: TimeInterval = 7209
time.timerFormat() // 02:00:09
按照您想要的格式化日期
let date = Date()
date.format(dateStyle: .medium, timeStyle: .full, locale: Locale.current, timeZone: TimeZone.current) // Jan 22, 2020 at 8:05:32 PM Central European Standard Time
date.format(dateFormat: "E, d MMM yyyy HH:mm:ss Z", locale: Locale.current, timeZone: TimeZone.current) // Wed, 22 Jan 2020 20:05:32 +0100
修改
let date = Date()
date.dateByAdding(month: 3, day: -2, hour: 1) // 2020-04-20 20:05:32
比较
let date = Date()
date.isEqual(to: date.dateByAdding(year: 3, month: 1, day: -10)) // false
date.isEariler(than: date.dateByAdding(year: 3, month: 1, day: -10)) // true
date.isLater(than: Date().dateByAdding(year: 3, month: 1, day: -10)) // false
测量日期之间的距离
let date = Date()
date.distance(to: date.dateByAdding(hour: 10), in: .minutes) // 600
其他变量和函数
要访问这些,您必须创建一个Dates对象。
let date = Date()
let dates = Dates()
dates.workdaysBetweenDates(from: date, to: date.dateByAdding(month: 3, day: -2, hour: 1)) // 64
dates.weekendDaysBetweenDates(from: date, to: date.dateByAdding(month: 3, day: -2, hour: 1)) // 26
//Handy variables
dates.hoursInDay // 24
dates.minutesInDay // 1440
dates.secondsInDay // 86400
dates.millisecondsInDay // 86400000
dates.daysInWeek // 7
dates.hoursInWeek // 168
dates.minutesInWeek // 10080
dates.secondsInWeek // 604800
dates.monthsInYear // 12
dates.weeksInYear // 54
安装
CocoaPods
如果使用CocoaPods,只需将此行添加到您的Podfile中
pod 'Dates'
在您的终端中运行此命令进行安装
pod install
然后在需要的地方导入库
import Dates
Carthage
只需将它添加到您的Cartfile中
github "lajosdeme/Dates"
贡献
如果您有评论、投诉或改进的想法,请随时提交问题或拉取请求。
作者和许可证
Lajos Deme 博士
Dates 依据MIT许可证提供。更多信息请参阅LICENSE文件。