#c# #json #datetime #json.net #datetime-format
#c# #json #дата и время #json.net #datetime-format
Вопрос:
У меня есть стороннее приложение, которое отправляет дату и время JSON как в одно-, так и в двузначном часовом формате. Час отправляется как однозначный, когда меньше 10, и двузначный, когда больше или равно 10.
например
2020-12-17T9:00:00.000-04:00
2020-12-17T11:00:00.000-04:00
Я ожидаю, что 2020-12-17T9:00:00.000-04:00 отправлено как 2020-12-17T 09:00:00.000-04:00.
Существует ли какая-либо DateFormatString, которая может обрабатывать как однократный, так и двойной цифровой час?
В настоящее время я использую настройки по умолчанию в Newtonsoft, и это вызывает исключение при разборе однозначной строки в DateTime.
Комментарии:
1. Можете ли вы предоставить обратную связь стороннему приложению и исправить ее там? Он явно пытается предоставить строку ISO-8601, но этот стандарт требует двух цифр. Для них было бы лучше исправить свое форматирование, чем каждому потребителю приходилось обходить его нарушение.
2. Да, это то, что я планирую сделать. Я публикую это здесь, чтобы посмотреть, не упустил ли я что-то. Я считаю, что они передают недопустимый формат, но я хочу перепроверить, прежде чем спрашивать .. Спасибо
Ответ №1:
Я думаю, мне не следует задавать вопрос в начале. Очевидно, что сторонняя компания не передает правильный формат.
Для тех, кто хочет получить строку даты и времени в этом формате «2020-12-17T11:00:00.000-04:00», формат «гггг-ММ-DDThh: мм: ss.fffzzz»
var dateString = DateTime.Now.toString(«гггг-ММ-DDThh:мм:ss.fffzzz»);