Created
July 24, 2016 09:18
-
-
Save secwang/d8f746aad92b9e8e95e503aece5108e0 to your computer and use it in GitHub Desktop.
test NSdate according to http://www.appcoda.com/nsdate/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import AppKit | |
| let currentDate = NSDate() | |
| //NSDate | |
| //NSDateFormatter | |
| //NSDateComponents | |
| //NSDateComponentFormatter | |
| //NSCalendar | |
| //let dateComponents = NSDateComponents() | |
| //let day = dateComponents.day | |
| //let month = dateComponents.month | |
| let dateFormatter = NSDateFormatter() | |
| dateFormatter.locale = NSLocale(localeIdentifier: "en_GB") | |
| let chinaLocale = NSLocale(localeIdentifier: "zh_CN") | |
| dateFormatter.dateStyle = NSDateFormatterStyle.FullStyle | |
| var convertedDate = dateFormatter.stringFromDate(currentDate) | |
| dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" | |
| convertedDate = dateFormatter.stringFromDate(currentDate) | |
| var dateAsString = "2016-07-24 16:45:49" | |
| var newDate = dateFormatter.dateFromString(dateAsString) | |
| let calendar = NSCalendar.currentCalendar(); | |
| let dateComponents = calendar.components([NSCalendarUnit.Day, NSCalendarUnit.Month, NSCalendarUnit.Year, NSCalendarUnit.WeekOfYear, NSCalendarUnit.Hour, NSCalendarUnit.Minute, NSCalendarUnit.Second, NSCalendarUnit.Nanosecond], fromDate: currentDate) | |
| print("day = \(dateComponents.day)", "month = \(dateComponents.month)", "year = \(dateComponents.year)", "week of year = \(dateComponents.weekOfYear)", "hour = \(dateComponents.hour)", "minute = \(dateComponents.minute)", "second = \(dateComponents.second)", "nanosecond = \(dateComponents.nanosecond)" , separator: ", ", terminator: "") | |
| let components = NSDateComponents() | |
| components.day = 5 | |
| components.month = 01 | |
| components.year = 2016 | |
| components.hour = 19 | |
| components.minute = 30 | |
| newDate = calendar.dateFromComponents(components) | |
| components.timeZone = NSTimeZone(abbreviation: "GMT") | |
| newDate = calendar.dateFromComponents(components) | |
| dateFormatter.dateFormat = "MMM dd, yyyy zzz" | |
| dateAsString = "Oct 08, 2015 GMT" | |
| var date1 = dateFormatter.dateFromString(dateAsString)! | |
| dateAsString = "Oct 10, 2015 GMT" | |
| var date2 = dateFormatter.dateFromString(dateAsString)! | |
| print("Earlier date is: \(date1.earlierDate(date2))") | |
| print("Later date is: \(date1.laterDate(date2))") | |
| if date1.compare(date2) == NSComparisonResult.OrderedAscending { | |
| print("Date1 is Earlier than Date2") | |
| } | |
| if date1.timeIntervalSinceReferenceDate < date2.timeIntervalSinceReferenceDate { | |
| print("Date1 is Earlier than Date2") | |
| } | |
| let monthsToAdd = 1 | |
| let daysToAdd = 1 | |
| var calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Month, value: monthsToAdd, toDate: currentDate, options: NSCalendarOptions.init(rawValue: 0)) | |
| calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Day, value: daysToAdd, toDate: calculatedDate!, options: NSCalendarOptions.init(rawValue: 0)) | |
| let newDateComponents = NSDateComponents() | |
| newDateComponents.month = monthsToAdd | |
| newDateComponents.day = daysToAdd | |
| calculatedDate = NSCalendar.currentCalendar().dateByAddingComponents(newDateComponents, toDate: currentDate, options: NSCalendarOptions.init(rawValue: 0)) | |
| let hoursToAddInSeconds: NSTimeInterval = 90 * 60 | |
| calculatedDate = currentDate.dateByAddingTimeInterval(hoursToAddInSeconds) | |
| let hoursToSubInSeconds: NSTimeInterval = -90 * 60 | |
| calculatedDate = currentDate.dateByAddingTimeInterval(hoursToSubInSeconds) | |
| dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" | |
| dateAsString = "2015-10-08 14:25:37" | |
| date1 = dateFormatter.dateFromString(dateAsString)! | |
| dateAsString = "2018-03-05 08:14:19" | |
| date2 = dateFormatter.dateFromString(dateAsString)! | |
| var diffDateComponents = NSCalendar.currentCalendar().components([NSCalendarUnit.Year, NSCalendarUnit.Month, NSCalendarUnit.Day, NSCalendarUnit.Hour, NSCalendarUnit.Minute, NSCalendarUnit.Second], fromDate: date1, toDate: date2, options: NSCalendarOptions.init(rawValue: 0)) | |
| print("The difference between dates is: \(diffDateComponents.year) years, \(diffDateComponents.month) months, \(diffDateComponents.day) days, \(diffDateComponents.hour) hours, \(diffDateComponents.minute) minutes, \(diffDateComponents.second) seconds") | |
| let dateComponentsFormatter = NSDateComponentsFormatter() | |
| dateComponentsFormatter.unitsStyle = NSDateComponentsFormatterUnitsStyle.Full | |
| let interval = date2.timeIntervalSinceDate(date1) | |
| dateComponentsFormatter.stringFromTimeInterval(interval) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment