Есть generic-метод для преобразования типов, для всех типов в принципе он работает адекватно:
public static class TypedConverter<T>
{
public static T Convert(object value, T defaultValue)
{
try { return (T)System.Convert.ChangeType(value, typeof(T)); }
catch { return defaultValue; }
}
}
Вот скриншот отображающий ситуацию
Таким образом, конвертация работает для строки "04/30/2019 04:40 PM" но не для "30/04/2019 04:40 PM"ю Прошу помощи
Всегда указывайте культуру. Запустите код, установив русскоязычную культуру - получите один результат. Установите англоязычную культуру - будет другой результат.
Месяцев только 12, их не может быть 30. Как я понял, вы хотите, чтобы принимались оба формата: "dd/MM" и "MM/dd"?
Тогда используйте DateTime.ParseExact (третью перегрузку), задав массив желаемых форматов.
public static class Converter
{
static string[] formats = new string[] { "MM/dd/yyyy hh:mm tt", "dd/MM/yyyy hh:mm tt" };
public static DateTime Convert(string value, DateTime defaultValue = new DateTime())
{
try
{
return DateTime.ParseExact(
value, formats, CultureInfo.InvariantCulture, DateTimeStyles.None);
}
catch { return defaultValue; }
}
}
Использование:
var dates = new string[] {
"04/30/2019 04:40 PM",
"30/04/2019 04:40 PM",
"04/05/2019 04:40 PM",
"05/04/2019 04:40 PM" };
foreach (var date in dates)
{
Console.WriteLine(Converter.Convert(date));
}
Этот код сконвертирует все 4 представленных значения.
Однако, два последних могут дать не тот результат, который ожидался. Это может быть как 4 мая, так и 5 апреля. Результат будет меняться в зависимости от порядка строк в массиве formats
- какой формат первым совпадёт, тот и выдастся.
Есть решение, это указывать культуру третьим параметром.
К примеру CultureInfo ci = new CultureInfo("Ru-ru");
public static class TypedConverter<T> {
public static T Convert(object value, T defaultValue, CultureInfo culture) {
return (T)System.Convert.ChangeType(value, typeof(T), culture);
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня есть Canvas который создает префабы(UI) ,но дело в том что мне нужно иметь один спрайт который всегда должен находиться над ними(префабы...
Есть метод, который асинхронно выполняет загрузку файлов, как задачу методом WebClientDownloadFileTaskAsync
Проблема заключается в том, что моя программа не может справится со своей задачей, слишком много данных проходит один поток данных
Всем привет, если в браузере вставить ссылку на канал https://tme/durov, то при условии если установлен телеграм, то вы автоматически перейдете на этот...