Авто конвертаци переменной в дату

semi

Пользователь
Регистрация
20.06.2023
Сообщения
55
Благодарностей
10
Баллы
8
В переменной лежат данные. 180.04
Записываю денные в ячейку эксели.
В логах читаю "Установка значения ячейки таблцы Результат 01.04.0180. 0:00:00" Ну и в ячейке тоже самое...

В экселке отключил авто замену на дату. В зенке есть такая функция?
 

semi

Пользователь
Регистрация
20.06.2023
Сообщения
55
Благодарностей
10
Баллы
8
Пока что заколхозил добавив знак перед переменной. Чтоб за писывалось как число
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 114
Баллы
113
В переменной лежат данные. 180.04
Записываю денные в ячейку эксели.
В логах читаю "Установка значения ячейки таблцы Результат 01.04.0180. 0:00:00" Ну и в ячейке тоже самое...

В экселке отключил авто замену на дату. В зенке есть такая функция?
Пока не смог воспроизвести ситуацию.
Предположу, что вы используете заранее созданную таблицу с измененным назначением ячеек, т.е. ячейка куда вы записываете данные настроена как 'дата и время'.
 
  • Спасибо
Реакции: semi

semi

Пользователь
Регистрация
20.06.2023
Сообщения
55
Благодарностей
10
Баллы
8
Пока не смог воспроизвести ситуацию.
Предположу, что вы используете заранее созданную таблицу с измененным назначением ячеек, т.е. ячейка куда вы записываете данные настроена как 'дата и время'.

Выяснил что это в эксельке формат ячейки такой.

Парсил добавляя знак ' и пото записывал в ячейку.

В эксельке заменил точку на запятую, что бы проссумировать результат
 
  • Спасибо
Реакции: Sergodjan

maks_pays

Client
Регистрация
01.01.2017
Сообщения
186
Благодарностей
50
Баллы
28
Пока не смог воспроизвести ситуацию.
Предположу, что вы используете заранее созданную таблицу с измененным назначением ячеек, т.е. ячейка куда вы записываете данные настроена как 'дата и время'.
подскажите пожалуйста как сменить в переменной 31 Oct 22:00 на 31 окт 22:00 именно на кирилицу и с все одного регистра
 

KokaSEO

Client
Регистрация
17.01.2015
Сообщения
351
Благодарностей
140
Баллы
43
подскажите пожалуйста как сменить в переменной 31 Oct 22:00 на 31 окт 22:00 именно на кирилицу и с все одного регистра
Я через свичи делел. Да, это не универсально, но месяцев всего 12 так что не проблема
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 114
Баллы
113
подскажите пожалуйста как сменить в переменной 31 Oct 22:00 на 31 окт 22:00 именно на кирилицу и с все одного регистра
Немного наговнокодил, но работает: :-)

C#:
string old_date = project.Variables["old_date"].Value; //31 Oct 22:00
System.Globalization.CultureInfo ru = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU");
System.Globalization.CultureInfo en = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
DateTime new_date = DateTime.ParseExact(old_date, "dd MMM hh:mm", en); 
return new_date.ToString(@"dd MMM hh:mm", ru); //31 окт 22:00
 
  • Спасибо
Реакции: djaga

maks_pays

Client
Регистрация
01.01.2017
Сообщения
186
Благодарностей
50
Баллы
28
Немного наговнокодил, но работает: :-)

C#:
string old_date = project.Variables["old_date"].Value; //31 Oct 22:00
System.Globalization.CultureInfo ru = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU");
System.Globalization.CultureInfo en = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
DateTime new_date = DateTime.ParseExact(old_date, "dd MMM hh:mm", en);
return new_date.ToString(@"dd MMM hh:mm", ru); //31 окт 22:00
чтото не работает
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 114
Баллы
113

maks_pays

Client
Регистрация
01.01.2017
Сообщения
186
Благодарностей
50
Баллы
28
Какую то ошибку в Лог выкидывает?
На входе, в переменной old_date, в каком формате дата?
31 Oct 22:00
Выполнение действия CSharp OwnCode. Строка не распознана как действительное значение DateTime.
 

deskuznetsov

Client
Регистрация
29.08.2019
Сообщения
528
Благодарностей
363
Баллы
63
31 Oct 22:00
Выполнение действия CSharp OwnCode. Строка не распознана как действительное значение DateTime.
C#:
string old_date = project.Variables["old_date"].Value; //31 Oct 22:00
System.Globalization.CultureInfo ru = System.Globalization.CultureInfo.CreateSpecificCulture("ru-RU");
System.Globalization.CultureInfo en = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
DateTime new_date = DateTime.ParseExact(old_date, "dd MMM HH:mm", en);
return new_date.ToString("dd MMM HH:mm", ru); //31 окт. 22:00
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 114
Баллы
113
31 Oct 22:00
Выполнение действия CSharp OwnCode. Строка не распознана как действительное значение DateTime.
Может быть в переменной old_date есть лишние пробельные символы?
Перепроверил, при конечном пробеле например выбивает такую ошибку.

Попробуйте в начало кода поместить такую строку:
project.Variables["old_date"].Value = Macros.TextProcessing.Trim(project.Variables["old_date"].Value, "Full");
 

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