Last active
October 29, 2016 13:32
-
-
Save mbogh/b1a31cf7c7377398a780 to your computer and use it in GitHub Desktop.
This file contains 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 Foundation | |
extension NSDate { | |
convenience init?(WCFDateString dateString: String) { | |
// First remove nonsense from dateString: /Date(_)/ | |
let dateStringSane = dateString.stringByTrimmingCharactersInSet(NSCharacterSet.decimalDigitCharacterSet().invertedSet) | |
// Make sure dateStringSane is at least 3 characters | |
guard dateStringSane.characters.count >= 3 else { return nil } | |
// Trim ms from the string | |
let dateStringTrimmed = dateStringSane.substringToIndex(dateStringSane.endIndex.advancedBy(-3)) | |
// Convert to Double | |
guard let timeIntervalSince1970 = Double(dateStringTrimmed) else { return nil } | |
self.init(timeIntervalSince1970: timeIntervalSince1970) | |
} | |
} | |
NSDate(WCFDateString: "/Date(1450093658000)/") // "Dec 14, 2015, 12:47 PM" | |
NSDate(WCFDateString: "/Date(1450093658)/") // "Jan 17, 1970, 7:48 PM" | |
NSDate(WCFDateString: "/Date(1455)/") // "Jan 1, 1970, 1:00 AM" | |
NSDate(WCFDateString: "/Date(145)/") // nil | |
NSDate(WCFDateString: "/Date(14)/") // nil | |
NSDate(WCFDateString: "/Date(1)/") // nil |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment