No, I was not suggesting to change the "Z" in your input data. I was suggesting to replace the "Z" with an "X" in the date formats in your index template.
The following works for me:
PUT _template/tpl
{
"template": "myindex.*",
"mappings": {
"dynamic_date_formats": [
"basic_ordinal_date_time",
"yyyy-MM-dd'T'HH:mm:ss.SX",
"yyyy-MM-dd'T'HH:mm:ss.SSX",
"yyyy-MM-dd'T'HH:mm:ss.SSSX"
]
}
}
PUT myindex.1/_doc/1
{
"my_date": "2018-12-23T04:48:08.123Z"
}
GET myindex.1/_mapping
Did you delete your index before you retried indexing your data? Index templates are only applied to new indexes, not to existing indexes.