Почему не работает ToString("yyyy.MM.dd", new System.Globalization.CultureInfo("ru-RU"))

kniaz05

Client
Регистрация
03.01.2021
Сообщения
36
Благодарностей
36
Баллы
18
Есть переменная date в которую заносится текущая дата в формате 2021.11.17:
//С#
return DateTime.Now.ToString("yyyy.MM.dd", new System.Globalization.CultureInfo("ru-RU"));

дата из переменной date кладется в БД с остальными данными. А при их извлечении в таблицу, дата автоматически преобразуется в 17.11.2021 0:00:00

Подскажите пожалуйста ответы на вопросы:
1. Почему дата полученная из базы конвертируется, можно ли получить дату как есть?
2. Почему следующий код выдает ошибку, как правильно?
//С#
return DateTime.Parse(project.Variables["yesterday"].Value.ToString("yyyy.MM.dd", new System.Globalization.CultureInfo("ru-RU"));
 

Вложения

kniaz05

Client
Регистрация
03.01.2021
Сообщения
36
Благодарностей
36
Баллы
18
Нашел рабочий вариант:
DateTime date_1 = DateTime.Parse(project.Variables["yesterday"].Value); // парсим дату из переменной
return date_1.ToString("yyyy.MM.dd", new System.Globalization.CultureInfo("ru-RU")); // записываем дату в переменную

Нашел тут: https://zennolab.com/discussion/threads/rabota-s-datoj-i-vremenem-v-zennoposter-s-ispolzovaniem-metodov-c.79048/post-567212

Новсе же хотелось бы узнать, почему из базы дата конвертируется?
И почему не работает код указанный в теме?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 373
Благодарностей
3 297
Баллы
113
  • Спасибо
Реакции: kniaz05

kniaz05

Client
Регистрация
03.01.2021
Сообщения
36
Благодарностей
36
Баллы
18
Используйте лог. У вас не была закрыта скобка, а так же вы применяете метод, которого нет у string.

Посмотреть вложение 85574
Спасибо с этим разобрался.
Но хотелось бы еще понять почему из базы приходит конвертированная дата в формате 17.11.2021 0:00:00, хотя BD хранится вот такая 2021-11-09. Интересно поскольку обратная конвертация ToString это скорее костыль в данной ситуации.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 373
Благодарностей
3 297
Баллы
113
Скорее всего в базе дата хранится в формате даты и вам надо получать её не как текст, а как DateTime, а уже потом конвертировать в требуемую строку.
 
  • Спасибо
Реакции: kniaz05

kniaz05

Client
Регистрация
03.01.2021
Сообщения
36
Благодарностей
36
Баллы
18
Скорее всего в базе дата хранится в формате даты и вам надо получать её не как текст, а как DateTime, а уже потом конвертировать в требуемую строку.
Столбец в безе данных указанная дата хранилась в формате даты DateStamp но в формате 2021.11.17, при запросе в phpmyadmin получаем нормальный список, а при исполнении того же запроса в ProjectMaker получаем полную дату с временем.
Решил вопрос принудительным заданием шаблона в запросе:

SELECT DISTINCT DATE_FORMAT(`date`, '%Y.%m.%d') FROM `my_table`;
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 373
Благодарностей
3 297
Баллы
113
при запросе в phpmyadmin получаем нормальный список
Скорее всего потому, что он игнорирует нулевое время в DateStamp.
Решил вопрос принудительным заданием шаблона в запросе:

SELECT DISTINCT DATE_FORMAT(`date`, '%Y.%m.%d') FROM `my_table`;
Да, такой вариант должен быть ближе к идеальному (если час. пояса вам не важны).
 

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