Тренировка формата строки, используемой для форматирования DateTime - PullRequest
7 голосов
/ 27 января 2010

У меня есть строка, представляющая значение DataTime, и я хочу выяснить, какой формат строки использовался для создания строки.

Например
- Учитывая "среда 27 января 2010", я ожидаю "dddd dd MMM гггг"
- Учитывая "2010 01 27", я ожидаю "гггг ММ дд"

Предположим, что дата близка к DateTime.Now и относится к CurrentCulture. Итак, учитывая, что у нас есть культура en-GB
- учитывая "01 01 2010" я ожидаю "дд ммгггг"

Есть ли простой способ сделать это?

Ответы [ 2 ]

1 голос
/ 27 января 2010

Самое простое, что нужно сделать - это посмотреть ссылку на строки форматирования даты и времени и их обработку.

Вы можете использовать отражение, чтобы получить это, или использовать дизассемблер (например, ILDASM ), чтобы найти все строки, используемые в сборке, и угадать, какие из них являются строкой форматирования даты и времени.

При разборке вы можете искать дни недели и строку, начинающуюся с dddd, которая должна рассказать вам, как был построен оригинал.

0 голосов
/ 27 января 2010

вы можете разделить пробел, чтобы получить массив строк тогда вы можете проверить элементы в массиве по известным значениям, чтобы попытаться угадать формат

например. если вы ищете "среда", если вы найдете его, предположим, "dddd"

если предполагается четырехзначное число гггг

дни и месяцы могут быть проблемой, вы можете проверить на> 12 дней, но это довольно плохо

возможно, вы могли бы вывести формат, используя разделение пробелов, а затем DateTime.Parse для оригинала и проверить форматированную (с использованием формата вывода) проанализированную дату на равенство

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...