У меня есть строка, которая представляет значение DataTime, и я хочу к тренировке, какой формат строки использовался для создания строки.
Например,
- Учитывая "среда 27 января 2010" я ожидаю "dddd dd MMM yyyy"
- Учитывая "2010 01 27" я ожидаю "yyyy MM dd"
Предположите, что дата близко к DateTime. Теперь и касается CurrentCulture. Таким образом, учитывая, что у нас есть культура en-ГБ
- Учитывая "01 01 2010" я ожидаю "dd MM yyyy"
Существует ли простой способ сделать это?
Вы можете разделить на пробеле, чтобы получить массив строк Затем вы можете проверить элементы в массиве против известных значений, чтобы попытаться угадать формат
E.G. Если вы ищете «среда», если вы найдете его, предположим, что «DDDD»
, если номер четырехзначного номера предполагает, что Yyyy
и месяцы могут быть проблема, вы могли бы проверить> 12 на дни, но это довольно плохо
Может быть, вы можете сделать вывод формата с использованием пробелного пространства, затем DateTime.parse на Orignal и тестируют против отформатированного (с помощью выведенного формата) версия даты расставания для равенства
Самая простая вещь, которую нужно сделать, это посмотреть ссылку для форматирования строк на DateTime и их разработки.
Вы можете использовать отражение, чтобы получить это или использовать DisaSsembler (например, ILDasm ), чтобы найти все строки, используемые в сборке, и угадают, на которые являются строка форматирования DateTime.
Если развозить, вы можете искать дни недели и для строки, начиная с DDDD
, который должен сказать вам, как был построен оригинал.