Skip to content

Instantly share code, notes, and snippets.

@s2339956
Forked from mbogh/wcf.swift
Created October 29, 2016 13:32
Show Gist options
  • Save s2339956/de25e6ac28eaa1cf5c661115e55f3f60 to your computer and use it in GitHub Desktop.
Save s2339956/de25e6ac28eaa1cf5c661115e55f3f60 to your computer and use it in GitHub Desktop.
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