介绍
NVDate 是 NSDate
类(Swift4)的扩展,旨在使日期和时间的操作更容易。
功能
- 提供了大量的 API 函数,使日期和时间的操作更容易和有趣
- 具有用户友好的命名约定
- NVDate 函数是 可链式
- 非常易于使用
- 开源!
安装
使用 Cocoa Pods
Swift4
将这些内容添加到您的 Podfile
文件中。
pod 'NVDate', '2.0.1'
然后在您的 swift 文件中导入 NVdate
。
import NVDate
Objective-C
将这些内容添加到您的 Podfile
文件中。
pod 'NVDate', '1.0.0'
然后将 NVdate.h
导入到您的 .h 或 .m 文件中。
#import "NVDate.h"
简单示例
今天的日期作为字符串
let date = NVDate()
print(date.asString())
// ==> Wednesday, February 5, 2014, 4:56:35 PM Western Indonesia Time
日期 2018/05/25 作为字符串
let date = NVDate(fromString: "2018/05/25", withFormat: "yyyy/MM/dd")
print(date.asString())
// ==> Friday, May 25, 2018, 00:00:00 AM Western Indonesia Time
下一个月的最后一天
let date = NVDate()
.nextMonths(diff: 2)
.lastDayOfMonth()
print(date.asString(withFormat: "dd-MM-yyyy"))
// ==> 30-04-2014
两个月前的第二周
let date = NVDate()
.previousMonths(diff: 2)
.firstDayOfMonth()
.nextWeek()
date.dateFormat(setFormat: "yyyy-MM-dd HH:mm:ss")
print(date.asString())
// ==> 2013-12-08 17:03:36
检测2018/05/25是否为周五
let todayIsFriday = NVDate(year: 2018, month: 5, day: 25)
.previousDay()
.isTodayName(.friday)
print(todayIsFriday)
// ==> false
点语法
let someday = NVDate()
.previousDay()
.previousWeek()
.nextDay()
.asString()
print(someday)
// ==> 2013-12-08 17:03:36
API 文档
初始化
初始化 | 描述 |
---|---|
NVDate() |
使用今天的日期作为日期值 |
NVDate(fromString:withFormat:) |
使用指定的日期字符串作为日期值。指定的日期字符串的格式必须明确定义。 |
NVDate(year:month:day:) |
使用年、月、日构造新的日期 |
NVDate(year:month:day:hour:minute:second:) |
使用年、月、日、小时、分钟、秒构造新的日期 |
NVDate(fromDate: Date) |
使用指定的日期作为值 |
方法
方法 | 描述 |
---|---|
date() |
返回日期对象 |
asString() |
返回日期对象的格式化字符串 |
asString(withFormat:) |
返回日期对象显式定义的格式化字符串值 |
setTimeAsZero() |
将小时、分钟和秒设置为0 |
dateFormat() |
返回当前日期格式。该格式用于 asString() |
dateFormat(setFormat:) |
更改当前日期格式。该格式用于 asString() |
dateStyle() |
返回当前格式器的日期样式 |
dateStyle(setStyle:) |
更改当前格式器的日期样式 |
timeStyle() |
返回当前格式器的日期样式 |
timeStyle(setStyle:) |
更改当前格式器的日期样式 |
timeZone() |
返回当前时区值 |
timeZone(setTimeZone:) |
修改时区值 |
nextDays(days:) |
移动到下 x 天 |
nextDay() |
移动到下一天 |
tomorrow() |
等同于 nextDay() |
previousDays(days:) |
移动到之前的 x 天 |
previousDay() |
移动到前一天 |
yesterday() |
等同于 previousDay() |
nextWeek() |
移动到下周 |
nextWeeks(diff:) |
移动到下 x 周 |
previousWeek() |
移动到上周 |
previousWeeks(diff:) |
移动到之前的 x 周 |
nextMonth() |
移动到下一个月 |
nextMonths(diff:) |
移动到下 x 个月 |
previousMonth() |
移动到前一个月 |
previousMonths(diff:) |
移动到之前的 x 个月 |
nextYear() |
移动到下一年 |
nextYears(diff:) |
移动到下 x 年 |
previousYear() |
移动到上一年 |
previousYears(diff:) |
移动到之前的 x 年 |
firstDayOfMonth() |
移动到当前月份的第一天 |
lastDayOfMonth() |
移动到当前月份的最后一天 |
firstMonthOfYear() |
移动到当前年份的第一个月 |
lastMonthOfYear() |
移动到当前年份的最后一个月 |
nearestPreviousDay(_:) |
移动到 x 天之前的 name 等于 NVDate.DayName 的那一天 |
nearestNextDay(_:) |
移动到 x 天之后 name 等于 NVDate.DayName 的那一天 |
thisDayName() |
获取今日星期,类型为 NVDate.DayName |
todayName() |
等同于 thisDayName() |
isThisDayName(_:) |
如果指定的日期名称等于对象上的日期,则返回 true |
isTodayName(_:) |
等同于 isThisDayName(_:) |
thisMonthName() |
获取本月的名称,类型为 NVDate.MonthName |
isThisMonthName(_:) |
如果指定的月份名称等于对象上的月份,则返回 true |
year() |
返回年份值 |
year(setYear:) |
更改年份值 |
month() |
返回月份值 |
month(setMonth:) |
更改月份值 |
weekOfYear() |
返回年份中的周数值 |
weekOfMonth() |
返回月份中的周数值 |
day() |
返回日期值 |
day(setDay:) |
更改日期值 |
hour() |
返回小时值 |
hour(setHour:) |
更改小时值 |
minute() |
返回分钟值 |
minute(setMinute:) |
更改分钟值 |
second() |
返回秒值 |
second(setSecond:) |
更改秒值 |
贡献
请随意通过进行 fork
-> pull request
来贡献