Конвертация даты на русском

Automator

Client
Регистрация
14.02.2016
Сообщения
12
Благодарностей
1
Баллы
3
Есть дата которая храниться в переменной, может принимать значения вида:
Январь 26, 2016
Февраль 12, 2016
Март 30, 2016
и тд.

Как преобразовать ее в:
26.01.2016
12.02.2016
30.03.2016
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 125
Баллы
113
Код:
string date = project.Variables["Date"].Value;
DateTime formatDate = DateTime.ParseExact(date, "MMMM dd, yyyy", null);
return formatDate.ToString("dd.MM.yyyy");
или
Код:
string date = project.Variables["Date"].Value;
DateTime formatDate;
DateTime.TryParse(date, out formatDate);
return formatDate.ToString("dd.MM.yyyy");
 

Automator

Client
Регистрация
14.02.2016
Сообщения
12
Благодарностей
1
Баллы
3
@Dimionix большое спасибо, что написали два варианта. Первый оказался легчев чтении и понимании, я его даже модифицировал добавив дату и часовой пояс и он даже работает)
Код:
string date = project.Variables["var_date"].Value;
string time = project.Variables["var_time"].Value;
string timezone = project.Variables["var_timezone"].Value;
string datetime = date +" "+ time +" "+ timezone;
DateTime formatDate = DateTime.ParseExact(datetime, "MMMM dd, yyyy HH:mm %z", null);
return formatDate.ToString("dd.MM.yyyy HH:mm");
Но тут выявилась новая задача по замене.
Дело в том, что часовые пояса могут быть разными и написание их может отличаться, а понимает скрипт только такой формат: %z
Соответственно нужно привести данные к одному виду

То есть заменить:
МСК|msk заменить на +3
Киев|kiev|Київ заменить на +2
CET на +1 заменить на +1
и тд

Практически все варианты замен я могу предусмотреть, но как это оформить скриптом?
 
  • Спасибо
Реакции: Bashmik

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 125
Баллы
113
Практически все варианты замен я могу предусмотреть, но как это оформить скриптом?
Заменить третью строку на
Код:
string timezone = project.Variables["var_timezone"].Value.Replace("МСК", "+3")
    .Replace("msk", "+3")
    .Replace("Киев", "+2")
    .Replace("kiev", "+2")
    .Replace("Київ", "+2");
    // и т.д.
 
  • Спасибо
Реакции: Bashmik

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
Похожий вопрос. Есть дата в формате: 5 января 2018 г. 13:19
Как ее разобрать на составляющие? По большому счету, нужен формат MM/dd
 

prostors

Client
Регистрация
16.12.2020
Сообщения
1 045
Благодарностей
34
Баллы
48
string date = project.Variables["DatePlacement"].Value;
DateTime formatDate = DateTime.ParseExact(date, "dd MMMM yyyy", null);
return formatDate.ToString("dd.MM.yyyy");

у меня вот этот код выдаёт ошибку
Выполнение действия CSharp OwnCode. Строка не распознана как действительное значение DateTime.

второй код успешно отрабатывает
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)