Кажется, что C # не удается проанализировать время в допустимом формате RFC 3339:
DateTime.ParseExact("2019-12-31T00:00:00.123456789+01:00", "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffffzzz", null)
Эта строка вызывает исключение, в то время как эта строка работает просто отлично:
DateTime.ParseExact("2019-12-31T00:00:00.1234567+01:00", "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzzz", null)
Так что кажется, что есть ограничение на миллисекунды, но я не могу найти какую-либо документацию по этому вопросу. Это так и должно быть?
Причина, по которой я хочу разобрать эту дату, заключается в том, что у меня есть поле ввода даты. Мы используем формат OAS (Swagger) date-time
, который довольно четко говорит о том, что любая дата в формате RFC 3339 Internet Date / Time должна быть действительной. Теперь из спецификации здесь раздела 5.6
time-secfrac = "." 1*DIGIT
Насколько я понимаю, это означает, что должно быть разрешено до 9 цифр и чтобы они были совместимы на 100%, мы должны разрешить эти входы,но, похоже, C # даже не поддерживает это.
Есть идеи, как это исправить?