-
-
Save s2339956/de25e6ac28eaa1cf5c661115e55f3f60 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