Изменение формата свойства DATETIME в winform C # - PullRequest
1 голос
/ 14 февраля 2012

Что не так с этим кодом?

Client c = new Client();
string format = "yyyy/MM/dd HH:mm:ss";
string dateAdded = now.ToString(format);
c.RegistrationDate = DateTime.Parse(dateAdded);

c.RegistrationDate - это объект dateTime в классе клиента, и я хочу, чтобы он был вставлен в мою базу данных.

конвертировать чертову дату в формат в моей базе данных MySQL.Это всегда говорит, что формат строки неверен.Что я сделал не так????я должен преобразовать мою регистрационную дату в строку ???Спасибо

** РЕДАКТИРОВАТЬ: Извините, я забыл упомянуть.«сейчас» равно now = DateTime.Now;, оно получает текущее время даты и времени.

Ответы [ 3 ]

3 голосов
/ 14 февраля 2012

A DateTime не имеет формат - это просто дата / время.(Будь то местное время, UTC или что-то другое, обратите внимание.)

Во-первых, вы не должны конвертировать текст в текст и обратно, как вы: это просто рецепт для неприятностей.Просто используйте:

c.RegistrationDate = now;

... выполняя любое необходимое округление.

Вы не показали, как пытаетесь вставить значение в свою базу данных.Если вы включите значение в оператор SQL напрямую , это объяснит это.Вам следует использовать параметризованный оператор SQL и передать значение непосредственно в параметр - преобразование не требуется.

Если вы уже это делаете, пожалуйста, покажите нам код, который вы пытаетесьиспользовать для вставки данных, и мы посмотрим, что мы можем сделать.См. документацию для некоторых примеров.

0 голосов
/ 14 февраля 2012

У вас может быть проблема с культурой. Вы можете попробовать использовать ParseExact, как указано здесь:

http://msdn.microsoft.com/en-us/library/1k1skd40.aspx

Поскольку метод Parse (String) пытается проанализировать строку представление даты и времени с использованием правил форматирования текущая культура, пытаясь разобрать определенную строку в разных культуры могут либо потерпеть неудачу, либо вернуть разные результаты. Если конкретный формат даты и времени будет проанализирован в разных локалях, используйте Метод DateTime.Parse (String, IFormatProvider) или одна из перегрузок. метода ParseExact и укажите спецификатор формата.

0 голосов
/ 14 февраля 2012

Я не думаю, что с кодом C # что-то не так, за исключением того, что я предполагаю, что вы делаете

string dateAdded = DateTime.Now.ToString(format);

В противном случае я не уверен, что такое «сейчас».

...