| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 | [[mapping-date-format]]=== `format`In JSON documents, dates are represented as strings. Elasticsearch uses a setof preconfigured formats to recognize and parse these strings into a longvalue representing _milliseconds-since-the-epoch_ in UTC.Besides the <<built-in-date-formats,built-in formats>>, your own<<custom-date-formats,custom formats>> can be specified using the familiar`yyyy/MM/dd` syntax:[source,console]--------------------------------------------------PUT my-index-000001{  "mappings": {    "properties": {      "date": {        "type":   "date",        "format": "yyyy-MM-dd"      }    }  }}--------------------------------------------------Many APIs which support date values also support <<date-math,date math>>expressions, such as `now-1m/d` -- the current time, minus one month, roundeddown to the nearest day.[[custom-date-formats]]==== Custom date formatsCompletely customizable date formats are supported. The syntax for these is explainedhttps://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html[DateTimeFormatter docs].[[built-in-date-formats]]==== Built In FormatsMost of the below formats have a `strict` companion format, which means thatyear, month and day parts of the week must use respectively 4, 2 and 2 digitsexactly, potentially prepending zeros. For instance a date like `5/11/1` wouldbe considered invalid and would need to be rewritten to `2005/11/01` to beaccepted by the date parser.To use them, you need to prepend `strict_` to the name of the date format, forinstance `strict_date_optional_time` instead of `date_optional_time`.These strict date formats are especially useful when<<date-detection,date fields are dynamically mapped>> in order to make sure tonot accidentally map irrelevant strings as dates.The following tables lists all the defaults ISO formats supported:`epoch_millis`::    A formatter for the number of milliseconds since the epoch. Note, that    this timestamp is subject to the limits of a Java `Long.MIN_VALUE` and    `Long.MAX_VALUE`.`epoch_second`::    A formatter for the number of seconds since the epoch. Note, that this    timestamp is subject to the limits of a Java `Long.MIN_VALUE` and `Long.    MAX_VALUE` divided by 1000 (the number of milliseconds in a second).[[strict-date-time]]`date_optional_time` or `strict_date_optional_time`::    A generic ISO datetime parser, where the date must include the year at a minimum, and the time    (separated by `T`), is optional.    Examples: `yyyy-MM-dd'T'HH:mm:ss.SSSZ` or  `yyyy-MM-dd`.[[strict-date-time-nanos]]`strict_date_optional_time_nanos`::    A generic ISO datetime parser, where the date must include the year at a minimum, and the time    (separated by `T`), is optional. The fraction of a second    part has a nanosecond resolution.    Examples: `yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ` or  `yyyy-MM-dd`.`basic_date`::    A basic formatter for a full date as four digit year, two digit month of    year, and two digit day of month: `yyyyMMdd`.`basic_date_time`::    A basic formatter that combines a basic date and time, separated by a 'T':    `yyyyMMdd'T'HHmmss.SSSZ`.`basic_date_time_no_millis`::    A basic formatter that combines a basic date and time without millis,    separated by a 'T': `yyyyMMdd'T'HHmmssZ`.`basic_ordinal_date`::    A formatter for a full ordinal date, using a four digit year and three    digit dayOfYear: `yyyyDDD`.`basic_ordinal_date_time`::    A formatter for a full ordinal date and time, using a four digit year and    three digit dayOfYear: `yyyyDDD'T'HHmmss.SSSZ`.`basic_ordinal_date_time_no_millis`::    A formatter for a full ordinal date and time without millis, using a four    digit year and three digit dayOfYear: `yyyyDDD'T'HHmmssZ`.`basic_time`::    A basic formatter for a two digit hour of day, two digit minute of hour,    two digit second of minute, three digit millis, and time zone offset:    `HHmmss.SSSZ`.`basic_time_no_millis`::    A basic formatter for a two digit hour of day, two digit minute of hour,    two digit second of minute, and time zone offset: `HHmmssZ`.`basic_t_time`::    A basic formatter for a two digit hour of day, two digit minute of hour,    two digit second of minute, three digit millis, and time zone off set    prefixed by 'T': `'T'HHmmss.SSSZ`.`basic_t_time_no_millis`::    A basic formatter for a two digit hour of day, two digit minute of hour,    two digit second of minute, and time zone offset prefixed by 'T':    `'T'HHmmssZ`.`basic_week_date` or `strict_basic_week_date`::    A basic formatter for a full date as four digit weekyear, two digit week    of weekyear, and one digit day of week: `xxxx'W'wwe`.`basic_week_date_time` or `strict_basic_week_date_time`::    A basic formatter that combines a basic weekyear date and time, separated    by a 'T': `xxxx'W'wwe'T'HHmmss.SSSZ`.`basic_week_date_time_no_millis` or `strict_basic_week_date_time_no_millis`::    A basic formatter that combines a basic weekyear date and time without    millis, separated by a 'T': `xxxx'W'wwe'T'HHmmssZ`.`date` or `strict_date`::    A formatter for a full date as four digit year, two digit month of year,    and two digit day of month: `yyyy-MM-dd`.`date_hour` or `strict_date_hour`::    A formatter that combines a full date and two digit hour of day:    `yyyy-MM-dd'T'HH`.`date_hour_minute` or `strict_date_hour_minute`::    A formatter that combines a full date, two digit hour of day, and two    digit minute of hour: `yyyy-MM-dd'T'HH:mm`.`date_hour_minute_second` or `strict_date_hour_minute_second`::    A formatter that combines a full date, two digit hour of day, two digit    minute of hour, and two digit second of minute: `yyyy-MM-dd'T'HH:mm:ss`.`date_hour_minute_second_fraction` or `strict_date_hour_minute_second_fraction`::    A formatter that combines a full date, two digit hour of day, two digit    minute of hour, two digit second of minute, and three digit fraction of    second: `yyyy-MM-dd'T'HH:mm:ss.SSS`.`date_hour_minute_second_millis` or `strict_date_hour_minute_second_millis`::    A formatter that combines a full date, two digit hour of day, two digit    minute of hour, two digit second of minute, and three digit fraction of    second: `yyyy-MM-dd'T'HH:mm:ss.SSS`.`date_time` or `strict_date_time`::    A formatter that combines a full date and time, separated by a 'T':    `yyyy-MM-dd'T'HH:mm:ss.SSSZZ`.`date_time_no_millis` or `strict_date_time_no_millis`::    A formatter that combines a full date and time without millis, separated    by a 'T': `yyyy-MM-dd'T'HH:mm:ssZZ`.`hour` or `strict_hour`::    A formatter for a two digit hour of day: `HH``hour_minute` or `strict_hour_minute`::    A formatter for a two digit hour of day and two digit minute of hour:    `HH:mm`.`hour_minute_second` or `strict_hour_minute_second`::    A formatter for a two digit hour of day, two digit minute of hour, and two    digit second of minute: `HH:mm:ss`.`hour_minute_second_fraction` or `strict_hour_minute_second_fraction`::    A formatter for a two digit hour of day, two digit minute of hour, two    digit second of minute, and three digit fraction of second: `HH:mm:ss.SSS`.`hour_minute_second_millis` or `strict_hour_minute_second_millis`::    A formatter for a two digit hour of day, two digit minute of hour, two    digit second of minute, and three digit fraction of second: `HH:mm:ss.SSS`.`ordinal_date` or `strict_ordinal_date`::    A formatter for a full ordinal date, using a four digit year and three    digit dayOfYear: `yyyy-DDD`.`ordinal_date_time` or `strict_ordinal_date_time`::    A formatter for a full ordinal date and time, using a four digit year and    three digit dayOfYear: `yyyy-DDD'T'HH:mm:ss.SSSZZ`.`ordinal_date_time_no_millis` or `strict_ordinal_date_time_no_millis`::    A formatter for a full ordinal date and time without millis, using a four    digit year and three digit dayOfYear: `yyyy-DDD'T'HH:mm:ssZZ`.`time` or `strict_time`::    A formatter for a two digit hour of day, two digit minute of hour, two    digit second of minute, three digit fraction of second, and time zone    offset: `HH:mm:ss.SSSZZ`.`time_no_millis` or `strict_time_no_millis`::    A formatter for a two digit hour of day, two digit minute of hour, two    digit second of minute, and time zone offset: `HH:mm:ssZZ`.`t_time` or `strict_t_time`::    A formatter for a two digit hour of day, two digit minute of hour, two    digit second of minute, three digit fraction of second, and time zone    offset prefixed by 'T': `'T'HH:mm:ss.SSSZZ`.`t_time_no_millis` or `strict_t_time_no_millis`::    A formatter for a two digit hour of day, two digit minute of hour, two    digit second of minute, and time zone offset prefixed by 'T': `'T'HH:mm:ssZZ`.`week_date` or `strict_week_date`::    A formatter for a full date as four digit weekyear, two digit week of    weekyear, and one digit day of week: `xxxx-'W'ww-e`.`week_date_time` or `strict_week_date_time`::    A formatter that combines a full weekyear date and time, separated by a    'T': `xxxx-'W'ww-e'T'HH:mm:ss.SSSZZ`.`week_date_time_no_millis` or `strict_week_date_time_no_millis`::    A formatter that combines a full weekyear date and time without millis,    separated by a 'T': `xxxx-'W'ww-e'T'HH:mm:ssZZ`.`weekyear` or `strict_weekyear`::    A formatter for a four digit weekyear: `xxxx`.`weekyear_week` or `strict_weekyear_week`::    A formatter for a four digit weekyear and two digit week of weekyear:    `xxxx-'W'ww`.`weekyear_week_day` or `strict_weekyear_week_day`::    A formatter for a four digit weekyear, two digit week of weekyear, and one    digit day of week: `xxxx-'W'ww-e`.`year` or `strict_year`::    A formatter for a four digit year: `yyyy`.`year_month` or `strict_year_month`::    A formatter for a four digit year and two digit month of year: `yyyy-MM`.`year_month_day` or `strict_year_month_day`::    A formatter for a four digit year, two digit month of year, and two digit    day of month: `yyyy-MM-dd`.
 |