Is simple structure encapsulating NSDate, NSCalendar, NSDateComponents, NSDateFormatter and provide new data type making operation with dates easy.
- Create date in any format and timezone
- Get date in any format and timezone
- Get date components (like year, month, second, etc)
- Many features for compare date
- Modyfy date, add or sub any date component
- Get diference between date
- iOS 8.0+ / Mac OS X 10.9+ / tvOS 9.0+ / watchOS 2.0+
- Xcode 7.2+
- If you need help, use Stack Overflow. (Tag 'JFTimeLord')
- If you'd like to ask a general question, use Stack Overflow.
- If you found a bug, open an issue.
- If you have a feature request, open an issue.
- If you want to contribute, submit a pull request.
Add it in your Cartfile:
github "JonFir/TimeLord"
Run carthage update to build the framework and drag the built TimeLord.framework into your Xcode project.
Just copy TimeLord.swift into your project
import TimeLord
letfirstDate=TimeLord(year:2016, month:01, day:01, hour:02, minute:30, second:00)letsecondDate=TimeLord(year:2015, month:01, day:01, hour:02, minute:30, second:00)letnowDate=TimeLord(keyWord:.Now)if nowDate > firstDate {...}letnewDate= secondDate.toString()letnewDate= firstDate.toStringInFormat("yyyy-MM-dd HH:mm:ss", inTimeZone:NSTimeZone(abbreviation:"MSK"))letnewDate= secondDate.addYears(11).addMonths(9).subDays(1)// form NSDate
letdate=TimeLord(date:NSDate())
// form date components
letdate=TimeLord(year:2016, month:01, day:08, hour:14, minute:25, second:00)letdate=TimeLord(year:2016, month:01, day:08, hour:10, minute:25, second:00, timeZone:NSTimeZone(abbreviation:"MSK"))
// form string
letdate=TimeLord(date:"2016-01-08 13:38:00")letdate=TimeLord(date:"2016-01-08 13:38:00", inFormat:"yyyy-MM-dd HH:mm:ss")letdate=TimeLord(date:"2016-01-08 09:38:00", inFormat:"yyyy-MM-dd HH:mm:ss", timeZone:NSTimeZone(abbreviation:"MSK"))
// from time interval
letdate=TimeLord(timeIntervalSince1970:1452243489)letdate=TimeLord(timeIntervalSinceNow:1452243489)letdate=TimeLord(timeInterval:1452243489, sinceDate: date)letdate=TimeLord(timeIntervalSinceReferenceDate:1452243489)
// from key word
letdate=TimeLord(keyWord:.Now)letdate=TimeLord(keyWord:.Today)letdate=TimeLord(keyWord:.Tomorrow)letdate=TimeLord(keyWord:.Yesterday)lettmDateInDefaultFormat=TimeLord(date:"2016-01-08 13:38:00")letyear= tmDateInDefaultFormat?.year
letmonth= tmDateInDefaultFormat?.month
letday= tmDateInDefaultFormat?.day
lethour= tmDateInDefaultFormat?.hour
letminute= tmDateInDefaultFormat?.minute
letsecond= tmDateInDefaultFormat?.second
letnanosecond= tmDateInDefaultFormat?.nanosecond
letdayInMonth= tmDateInDefaultFormat?.dayInMonth
letweekday= tmDateInDefaultFormat?.weekday
letweekdaySymbol= tmDateInDefaultFormat?.weekdaySymbol
letweekdayOrdinal= tmDateInDefaultFormat?.weekdayOrdinal
letquarter= tmDateInDefaultFormat?.quarter
letweekOfMonth= tmDateInDefaultFormat?.weekOfMonth
letweekOfYear= tmDateInDefaultFormat?.weekOfYear
letyearForWeekOfYear= tmDateInDefaultFormat?.yearForWeekOfYear
letera= tmDateInDefaultFormat?.eraletdate=TimeLord(year:2016, month:01, day:08, hour:23, minute:00, second:00)
date.toString() // "2016-01-08 23:00:00"
date.toStringInFormat("yyyy-MM-dd HH:mm:ss") // "2016-01-08 23:00:00"
date.toStringInFormat("yyyy-MM-dd HH:mm:ss", inTimeZone:NSTimeZone(abbreviation:"MSK")) //"2016-01-08 19:00:00"
date.toFormattedDateString() // "янв. 8, 2016"
date.toTimeString() // "23:25:40"
date.toDateTimeString() // "2016-01-08 23:25:40"
date.toDayDateTimeString() // "пт, янв. 8, 2016 11:25 PM"
date.toAtomString() // "2016-01-08T23:25:40+07:00"
date.toCookieString() // "пятница, 08-янв.-2016 23:25:40 GMT+7"
date.toIso8601String() // "2016-01-08T23:25:40+0700"
date.toRfc822String() // "пт, 08 янв. 16 23:25:40 +0700"
date.toRfc850String() // "пятница, 08-янв.-16 23:25:40 GMT+7"
date.toRfc1036String() // "пт, 08 янв. 16 23:25:40 +0700"
date.toRfc1123String() // "пт, 08 янв. 2016 23:25:40 +0700"
date.toRfc2822String() // "пт, 08 янв. 2016 23:25:40 +0700"
date.toRfc3339String() // "2016-01-08T23:25:40+07:00"
date.toW3cString() // "2016-01-08T23:25:40+07:00"
date.toRssString() // "пт, 08 янв. 2016 23:25:40 +0700"letdate1=TimeLord(year:2016, month:01, day:01, hour:02, minute:30, second:00)letdate2=TimeLord(year:2016, month:01, day:01, hour:02, minute:30, second:00)letdate3=TimeLord(year:2016, month:01, day:02, hour:18, minute:30, second:45)letdate4=TimeLord(year:2016, month:01, day:02, hour:22, minute:35, second:45)if date1 == date2 {...}if date1 != date3 {...}if date1 < date3 {...}if date3 <= date4 {...}if date1 <= date2 {...}if date4 > date3 {...}if date3 >= date2 {...}if date1 >= date2 {...}if date3.between(date1, second: date4){...}letdate= date1.closest(date3, second: date4) // return date3
letdate= date1.farthest(date3, second: date4) // return date4
letdate= date1.earlier(date3) // return date1
letdate= date1.later(date3) // return date3
if date.isWeekend(){...}if date.isYesterday(){...}if date.isToday(){...}if date.isTomorrow(){...}if date.isFuture(){...}if date.isPast(){...}if date.isLeapYear(){...}if date.isSameDay(tm2){...}if date.isSunday(){...}if date.isMonday(){...}if date.isTuesday(){...}if date.isWednesday(){...}if date.isThursday(){...}if date.isFriday(){...}if date.isSaturday(){...}letnewDate= date.addYears(1)letnewDate= date.subYears(1)letnewDate= date.addMonths(9)letnewDate= date.subMonths(1)letnewDate= date.addDays(11)letnewDate= date.subDays(11)letnewDate= date.addHours(1)letnewDate= date.subHours(1)letnewDate= date.addMinutes(15)letnewDate= date.subMinutes(15)letnewDate= date.addSeconds(1)letnewDate= date.subSeconds(15)letnewDate= date.addYears(1).addMonths(9).addSeconds(1)letnewDate= date.next() //nextDay
letnewDate= date.previous() //prevDay
letnewDate= date.inTimeZone(NSTimeZone(abbreviation:"MSK")!)letnewDate= date.startOfDay()letnewDate= date.endOfDay()letnewDate= date.startOfMonth()letnewDate= date.endOfMonth()letnewDate= date.startOfYear()letnewDate= date.endOfYear()letnewDate= date.average(anotherDay)letnewDate= firstDate.diffInYears(secondDate)letnewDate= firstDate.diffInMonths(secondDate)letnewDate= firstDate.diffInWeeks(secondDate)letnewDate= firstDate.diffInDays(secondDate)letnewDate= firstDate.diffInHours(secondDate)letnewDate= firstDate.diffInMinutes(secondDate)letnewDate= firstDate.diffInSeconds(secondDate)The MIT License (MIT)
Copyright (c) 2015 Evgeny Elchev