Есть ли какой-нибудь C # для изменения и установки формата даты?
Формат вывода даты однозначно зависит от региональных настроек конкретного ПК. Чтобы оперировать этими настройками, существует класс
System.Globalization.CultureInfo и его методы, позволяющие менять текущую культуру или явно задавать требуемый ее формат.
Для парсинга из строки дат с форматом, отличным от установленного на ПК, в DateTime имеется метод ParseExact (о нем есть инфо в статье).
Вывести даты в текущем региональном формате можно по разному, для этого в .NET есть
стандартные форматы, а чтобы вывести в строку в своем виде есть конструкция .ToString("dd-MM-yyy"), где "dd-MM-yyy" — вид в котором надо отправить дату в строку (и об этом тоже есть в статье). Кстати, не припомню, чтобы где-то в вебе (хоть через браузер, хоть через гет-пост, хоть через API) мне пришлось работать именно с DateTime, а не его строковым отображением. Т.е., по сути, любое оперирование с датой и временем сводится к следующим этапам:
1. Спарсить дату (в соотв. с входными региональными настройками)
2. Обработать ее согласно стоящей задаче (в текущих региональных настройках ПК)
3. Получить строку даты в требуемом формате и делать с ней все что душе угодно — передавать в пост-гет, в апи или в браузер.
Есть еще эксель, который должен понимать, что вот это дата, но я предпочитаю и в экселе хранить даты в строковом формате, т.к. при экспериментах получил неоднозначные варианты распознавания, а потому благополучно забил на это.