Description
Converts input, based on format, to datetime data type.
Syntax
ToDate(milliseconds)
ToDate(datetime_string)
ToDate(custom_string, format)
ToDate(custom_string, format, timezone)
Arguments
milliseconds - long. The number of milliseconds from 1970-01-01T00:00:00.000Z (similar to Unix time except that Unix is the number of seconds instead of milliseconds.)
datetime_string - string expression in ISO 8601 format. If the value of the expression is not in the ISO 8601 format, an exception is thrown.
custom_string - datetime value in a string expression in a custom format
format - format of the custom string. See below for formatting information.
timezone - timezone information in either UTC offset or location based format.
Format strings
Symbol | Meaning | Presentation | Examples |
---|---|---|---|
G | era | text | AD |
C | century of era (>=0) | number | 20 |
Y | year of era (>=0) | year | 1996 |
x | weekyear | year | 1996 |
w | week of weekyear | number | 27 |
e | day of week | number | 2 |
E | day of week | text | Tuesday; Tue |
y | year | year | 1996 |
D | day of year | number | 189 |
M | month of year | month | July; Jul; 07 |
d | day of month | number | 10 |
a | halfday of day | text | PM |
K | hour of halfday (0~11) | number | 0 |
h | clockhour of halfday (1~12) | number | 12 |
H | hour of day (0~23) | number | 0 |
k | clockhour of day (1~24) | number | 24 |
m | minute of hour | number | 30 |
s | second of minute | number | 55 |
S | fraction of second | number | 978 |
z | time zone | text | Pacific Standard Time; PST |
Z | time zone offset/id | zone | -0800; -08:00; America/Los_Angeles |
\' | escape character | for a-z/A-Z | T |
\'\' | single quote | literal single quote | ' |
Based on http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html
Examples
ToDate('2013-10-17T23:59:54.432Z')
returns datetime value 2013-10-17T23:59:54.432Z
ToDate(0)
returns datetime value 1970-01-01T00:00:00.000Z
ToDate(
1414877400 * 1000)
returns datetime value 2014-11-01T21:30:00.000Z
(takes the Unix timestamp of 1414877400 which is in seconds and multiplies it by 1000 to generate the number of milliseconds that the ToDate function requires)
ToDate(1585195200000)
returns datetime value 2020-03-26T04:00:00.000Z
. (When run in X-Console, explicitly cast that number as a Long datatype like this: ToDate(1585195200000L))
ToDate('10/17/2013 23:59:54','MM/dd/yyyy HH:mm:ss')
returns datetime value 2013-10-17T23:59:54.000Z
ToDate('10/17/2013 23:59:54','MM/dd/yyyy HH:mm:ss','+01:00')
returns datetime value 2013-10-17T23:59:54.000+01:00
ToDate('Tue Jul 02 09:18:52 +0000 2013','EEE MMM dd HH:mm:ss Z yyyy')
returns datetime value 2013-07-02T09:18:52.000Z
(This is the datetime format used in Twitter stream).
ToDate('2019-03-17T12:11:04 +06:00', 'yyyy-MM-dd\'T\'HH:mm:ss Z')
returns 2019-03-17T06:11:04.000Z
Return value datatype
datetime
Notes
If format or timezone are null, an exception will be thrown.
Impact of null value
If milliseconds, iso8601_string or custom_string are null, returns null.