DateTime.TryParse строка в неправильном формате - PullRequest
1 голос
/ 08 июля 2011

в C # Я пытаюсь сделать DateTime.TryParse для строкового поля, которое я получаю из DataFeed, который я знаю, в формате "MM / dd / YYYY".например,

DateTime dt = DateTime.TryParse("01/30/11");

Единственное, что теперь означает "dt", имеет неправильный формат для сохранения в моей базе данных, для которой в качестве локали DateTime задано значение "dd / MM / YYYY".

Какмне правильно разобрать строковое поле в dt, а затем в мою БД?Что было бы лучшим способом справиться с этим?Если я установлю глобализацию моего CurrentThread на en-US, тогда dt будет в формате en-US, однако при вставке в БД он все равно будет неправильно сохранен?: S

Спасибо

Дэвид

Ответы [ 3 ]

2 голосов
/ 08 июля 2011

Используйте метод DateTime.ParseExact :

DateTime dt = DateTime.ParseExact("15/12/2011", "dd/MM/yyyy", CultureInfo.InvariantCulture);

Если вы хотите преобразовать значение DateTime в строку обратно, используйте следующий код:

string dtString = string.Format("{0: dd/MM/yyyy}", dt);
1 голос
/ 08 июля 2011

Попробуйте использовать TryParseExact.

http://msdn.microsoft.com/en-us/library/system.datetime.tryparseexact.aspx

0 голосов
/ 08 июля 2011

Надеюсь, вы понимаете, что TryParse будет выполняться с помощью оператора if, см. Следующий пример:

  private void button1_Click_1(object sender, EventArgs e)
    {

        DateTime myData = new DateTime();

        if (DateTime.TryParse(this.textBox1.Text,out myData))
        {
            // your filed db = myData
        }
    }

затем вы вводите в блок обновление поля базы данных, в соответствии с установленными культурами.на вашем компьютере.

Пока

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