Currently values of typed literals TIMESTAMP and DATE are parsed to desired values by Timestamp.valueOf and Date.valueOf. This restricts date and timestamp pattern, and makes inconsistent to casting to TimestampType/DateType. Also using Timestamp.valueOf and Date.valueOf assumes hybrid calendar while parsing textual representation of timestamps/dates. This should be fixed by re-using cast functionality.