Преобразование строки в дату - PullRequest
1 голос
/ 17 января 2012

В части моей системы у меня есть такая ситуация: я получу строку, которая представляет дату, и другую строку, которая представляет время. Мне нужно разрешить эту информацию в DateTime. Итак, сделал это:

string date = "17012012";
string hour = "103445";

date = string.Format("{0}/{1}/{2}", date.Substring(0, 2), 
            date.Substring(2, 2), date.Substring(4, 4));
hour = string.Format("{0}:{1}:{2}", hour.Substring(0, 2),
            hour.Substring(2, 2), hour.Substring(4, 2));

DateTime example = new DateTime();
example = DateTime.Parse(string.Format("{0} {1}", date, hour));

Хорошо, но это хороший шаблон? Есть ли "более красивый" способ сделать это?

Ответы [ 3 ]

7 голосов
/ 17 января 2012

Вы можете использовать DateTime.ParseExact вместо

например

DateTime.ParseExact(date + hour, "ddMMyyyyHHmmss", CultureInfo.InvariantCulture);
2 голосов
/ 17 января 2012

Взгляните на методы Parse и ParseExact DateTime в документации MSDN.

Я думаю, что также Даты и время анализа в .NET могут помочь.

1 голос
/ 17 января 2012

Так или иначе ваша программа должна проанализировать этот формат.Я бы сделал так:

string date = "17012012";
string time = "103445";

int year = Convert.ToInt32(date.Substring(4, 4));
int month = Convert.ToInt32(date.Substring(2, 2));
int day = Convert.ToInt32(date.Substring(0, 2));
int hour = Convert.ToInt32(time.Substring(0, 2));
int minute = Convert.ToInt32(time.Substring(2, 2));
int second = Convert.ToInt32(time.Substring(4, 2));

DateTime example = new DateTime(year, month, day, hour, minute, second);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...