Строка для DateTime в c #: 2018-05-10 10-AM - PullRequest
0 голосов
/ 12 мая 2018

Я хотел бы преобразовать строку «2018-05-10 10-AM» в DateTime-объект.Я перепробовал все, включая это (выбрасывает исключение):

var date = DateTime.ParseExact("values[0]", "yyyy-MM-dd HH-tt", 
System.Globalization.CultureInfo.InvariantCulture);

Кто-нибудь знает, что я делаю неправильно?

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Вы также можете использовать что-то вроде этого:

var date = DateTime.ParseExact("2018-05-10 10-AM", @"yyyy-MM-dd hh-tt", new CultureInfo("en-US"));

и в вашем собственном примере:

var date = DateTime.ParseExact(values[0], @"yyyy-MM-dd hh-tt", new CultureInfo("en-US"));

обратите внимание, что не помещайте переменные в кавычки.

0 голосов
/ 12 мая 2018

Я думаю, вы должны hh спецификатор вместо HH спецификатор , поскольку ваша часовая часть имеет формат 12-часовые часы , а не 24-часовые часы .

var date = DateTime.ParseExact("2018-05-10 10-AM", "yyyy-MM-dd hh-tt", 
                                  CultureInfo.InvariantCulture);

А также, как заметил Дэвид , в вашем коде есть опечатка.По крайней мере, так должно быть;

var date = DateTime.ParseExact(values[0], "yyyy-MM-dd hh-tt", 
                                  CultureInfo.InvariantCulture);
...