#c# #android #xamarin #xamarin.android
#c# #Android #xamarin #xamarin.android
Вопрос:
string createddate = "10/14/2016 11:46 AM";
DateTime date = Convert.ToDateTime(createddate);
Я пытаюсь преобразовать строку в формат даты и времени, на некоторых устройствах это работает, некоторые устройства выдают вышеуказанное исключение. почему? пожалуйста, помогите мне решить эту проблему.
Комментарии:
1. Скорее всего, на нее влияет культура на каждом устройстве.
Ответ №1:
Проблема в том, что каждое устройство потенциально может иметь разную культуру. Вы можете игнорировать язык и заставить его распознавать определенный формат даты в вашей строке:
DateTime date = DateTime.ParseExact(
createddate , "MM/dd/yy HH:mm tt", CultureInfo.InvariantCulture);
Стандартные форматы строк даты и пользовательские форматы строк даты см. в разделе MSDN.
Комментарии:
1. Что вы подразумеваете под «он не показывает AM / PM»? Что этого не показывает? Итоговая дата? Свидания есть свидания. То, как они отображаются, зависит от устройства или приложения, которые их отображают. Например, если вы говорите о часах в Visual Studio, возможно, ваш компьютер по какой-то причине настроен на отображение 24-часового формата времени. Это станет более очевидным, если вы попробуете сделать это со временем после 12:00 вечера; 1:00 ВЕЧЕРА будет 13:00.
Ответ №2:
Попробуйте это:
string createddate = "10/14/2016 11:46 AM";
DateTime dateTime;
DateTime.TryParse(createddate, out dateTime);
Ответ №3:
Вам необходимо определить формат даты и времени при преобразовании a string
в DateTime
значение. Угадывание формата по умолчанию или надежда на правильный формат приведут к различным ошибкам. Это один из наиболее распространенных источников ошибок, которые не могут быть воспроизведены на компьютере разработчика.
Пример, чтобы сделать это правильно:
var date = DateTime.ParseExact("10/14/2016 11:46 AM",
"MM/dd/yyyy HH:mm tt",
CultureInfo.InvariantCulture);