Конвертация DateTime со стринга

162
06 февраля 2018, 06:25

Конвертирую "05-Feb-18 5:44:00 AM"

date = DateTime.ParseExact(reader["DateTime"].ToString(), "dd-MMM-yy H:mm:ss tt", CultureInfo.InvariantCulture)

Exception: System.FormatException: 'String was not recognized as a valid DateTime.'

Как решить вопрос?

Answer 1

Перепробовал кучу способов. Помогло такое:

date = DateTime.ParseExact(reader.GetString(3), "dd-MMM-yy h:mm:ss tt", null)

Почему-то сразу парсить не хотело.

Answer 2

Вы делаете неправильно, вы получаете из БД дату, преобразуете ее в строку, а потом парсите обратно в дату.

Просто воспользуйтесь методом GetDateTime своего экземпляра SQLiteDataReader:

date = reader.GetDateTime(номер столбца);

или попробуйте кастовать результат индексатора в дату:

date = (DateTime)reader["DateTime"];
Answer 3

Попробуйте этот вариант, у меня работает(в MSQL поле Date формата DateTime, _sqlCon - ваше sql соединение):

var selectCommand = _sqlCon.CreateCommand();
selectCommand.CommandText = "SELECT Date FROM [dbo].[time];";
SqlDataReader reader = selectCommand.ExecuteReader();
reader.Read();
var dateSQL = reader.GetDateTime(0);

Ну или, если хотите туда-сюда парсить(из datetime в string, потом обратно) проверьте ещё раз строку, которую вы достаете из базы данных. Так как подобный тест проходит без ошибок:

string dateString = "05-Feb-18 5:44:00 AM";
DateTime date = DateTime.ParseExact(dateString, "dd-MMM-yy H:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);
READ ALSO
как при наведении курсора на кнопку сделать появления справки Windows forms

как при наведении курсора на кнопку сделать появления справки Windows forms

Будет кнопка, и если удержать на этой кнопке мышку секунду где-то 05 будет появляться окно с текстом

191
Hide banner Admob - Unity

Hide banner Admob - Unity

Проблема такова: банер запускается, но не работает Hide(); и Destroy(); у AdmobаСкрипт:

139
c# удалить разрешения пользователя

c# удалить разрешения пользователя

Нужно на папку программно удалять разрешения определенного пользователяНашел пример на MSDN

158