Using `DateString` and `StringSplit`: dstr = DateString[ToString@19001231, "ISODate"] > "1900-12-31" ToExpression@StringSplit[dstr, Except[DigitCharacter]] > {1900, 12, 31}