NVDate - 📅简化日期和时间操作的Swift4 NSDate类扩展
📅NVDate是NSDate类(Swift4)的扩展,创建该类可以简化日期和时间操作。 NVDate是可测试和强大的,其编写密集测试以确保一切安全。
Swift 日期/时间处理
共177Star
详细介绍
Introduction
NVDate is an extension of NSDate
class (Swift4), created to make date and time manipulation easier. NVDate is testable and robust, we wrote intensive test to make sure everything is safe.
Features
- Has lot of API function to make date and time manipulation easier and fun
- Has user friendly naming convention
- NVDate functions are chainable
- Very easy to use
- Open Source!
Installation
Using Cocoa Pods
Swift4
Add these into your Podfile
:
pod 'NVDate', '2.0.1'
Then import NVdate
into your swift file.
import NVDate
Objective-C
Add these into your Podfile
:
pod 'NVDate', '1.0.0'
Then import NVdate.h
into your .h or .m file.
#import "NVDate.h"
Simple Example
Today date as string
let date = NVDate()
print(date.asString())
// ==> Wednesday, February 5, 2014, 4:56:35 PM Western Indonesia Time
Date 2018/05/25 as string
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
Last day of next 2 months
let date = NVDate()
.nextMonths(diff: 2)
.lastDayOfMonth()
print(date.asString(withFormat: "dd-MM-yyyy"))
// ==> 30-04-2014
Second week of 2 months ago
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
Detect if 2018/05/25 is friday
let todayIsFriday = NVDate(year: 2018, month: 5, day: 25)
.previousDay()
.isTodayName(.friday)
print(todayIsFriday)
// ==> false
Dot syntax
let someday = NVDate()
.previousDay()
.previousWeek()
.nextDay()
.asString()
print(someday)
// ==> 2013-12-08 17:03:36
API Documentation
Initialization
Initialization | Description |
---|---|
NVDate() |
Today date is used as date value |
NVDate(fromString:withFormat:) |
Use specified date string as date value. Format of specified date string has to be explicitly defined. |
NVDate(year:month:day:) |
Construct new date using year, month, and day |
NVDate(year:month:day:hour:minute:second:) |
Construct new date using year, month, day, hour, minute, second |
NVDate(fromDate:) |
use specified date as value |
Methods
Method | Description |
---|---|
date() |
return the date object |
asString() |
return string formatted of date object |
asString(withFormat:) |
return formatted string value of date object. the format has to be defined explicitly |
setTimeAsZero() |
set hour, minute, and second as 0 |
dateFormat() |
return the current date format. the format is used on asString() |
dateFormat(setFormat:) |
change current date format. the format is used on asString() |
dateStyle() |
return the date style of current formatter |
dateStyle(setStyle:) |
change date style of current formatter |
timeStyle() |
return the time style of current formatter |
timeStyle(setStyle:) |
change time style of current formatter |
timeZone() |
return current timezone value |
timeZone(setTimeZone:) |
change the timezone value |
nextDays(days:) |
move to next x days |
nextDay() |
move to next day |
tomorrow() |
alias of nextDay() |
previousDays(days:) |
move to previous x days |
previousDay() |
move to previous day |
yesterday() |
alias of previousDay() |
nextWeek() |
move to next week |
nextWeeks(diff:) |
move to next x weeks |
previousWeek() |
move to previous week |
previousWeeks(diff:) |
move to previous x weeks |
nextMonth() |
move to next month |
nextMonths(diff:) |
move to next x months |
previousMonth() |
move to previous month |
previousMonths(diff:) |
move to previous x months |
nextYear() |
move to next year |
nextYears(diff:) |
move to next x years |
previousYear() |
move to previous year |
previousYears(diff:) |
move to previous x years |
firstDayOfMonth() |
move to first day of current month |
lastDayOfMonth() |
move to last day of current month |
firstMonthOfYear() |
move to first month of current year |
lastMonthOfYear() |
move to last month of current year |
nearestPreviousDay(_:) |
move to x previous day that name equal to NVDate.DayName |
nearestNextDay(_:) |
move to x next day that name equal to NVDate.DayName |
thisDayName() |
get today day name, in type NVDate.DayName |
todayName() |
alias of thisDayName() |
isThisDayName(_:) |
return true if specified day name is equal with day on the object |
isTodayName(_:) |
alias of isThisDayName(_:) |
thisMonthName() |
get this month name, in type NVDate.MonthName |
isThisMonthName(_:) |
return true if specified month name is equal with month on the object |
year() |
return year value |
year(setYear:) |
change year value |
month() |
return month value |
month(setMonth:) |
change month value |
weekOfYear() |
return week of year value |
weekOfMonth() |
return week of month value |
day() |
return day value |
day(setDay:) |
change day value |
hour() |
return hour value |
hour(setHour:) |
change hour value |
minute() |
return minute value |
minute(setMinute:) |
change minute value |
second() |
return second value |
second(setSecond:) |
change second value |
Contribution
Feel free to contribute by doing fork
-> pull request