У меня есть ряд действий .net webApi, возвращающих даты, которые десериализуются в JSON. Затем мое угловое приложение использует эти строки даты для отображения\редактирования или в качестве ngModel в различных директивах даты. Для многих из этих директив требуется объект даты javascript, а не строковое представление даты. Как сериализовать строку даты обратно в дату javascript для всех возвращаемых данных webapi?
Н.Б. Я пробовал множество регулярных выражений, которые претендуют на совместимость с ISO 8601, но для каждого из них, которые я использую, есть множество вариантов использования, которые терпят неудачу. Случаи, которые мне нужны, следующие:
- не следует преобразовывать не даты (строки), например. 'http://blah/'
- не следует преобразовывать не даты (целые числа), например. 2015
- не следует преобразовывать плохие даты, например. '2009-05-19T14a39r'
- не следует преобразовывать частичную неверную дату из строки в дату, например. '1'
- не следует преобразовывать строку, которая выглядит как год, например. '2015'
- следует преобразовать дату из строки в дату, например. '2015-09-09'
- следует преобразовать дату со временем из строки в дату со временем, например. '2009-05-19T14:39'
следует преобразовать дату со временем из строки в дату со временем, включая секунды, например. '2009-05-19T14:39:23'
следует преобразовать дату со временем в миллисекунды из строки в дату со временем с миллисекундами, например. '2016-06-09T13:02:39.957'
следует преобразовать дату со временем из строки в дату со временем в формате UTC, например. '2009-05-19T14:39Z'
не следует преобразовывать дату, которая является частью более длинной строки, например. «Не следует преобразовывать 2015-12-12T00:00:00Z, так как это часть более длинной строки»