Unity С# конвертирует строку даты в объект даты и времени в желаемом формате даты и времени

Мне нужно преобразовать список строк, содержащих информацию о дате (например, "2018-12-16"), в формат DateTime, чтобы я мог отсортировать их все по дате... а затем преобразовать обратно в строку... Я борюсь чтобы сделать эту работу. Тестирование на одной из строк:

string dateTimeString = "2018-12-16";
System.DateTime dateTime = System.DateTime.Parse(dateTimeString);
print(dateTime.ToString());

который печатает "12/15/2018 12:00:00 AM" - но мне не нужно время, и формат другой.. поэтому я попробовал это (указав формат даты):

string dateTimeString = "2018-12-16";
System.DateTime.ParseExact(dateTimeString, new string[] { "yyyy-MM-dd" }, new System.Globalization.CultureInfo("en-AU"), System.Globalization.DateTimeStyles.None);
print(dateTime.ToString());

это имеет тот же результат.

Я попытался сделать преобразование формата другим способом:

string dateTimeString = System.String.Format("{0:yyyy-MM}", dateTime);
print(dateTimeString);

это также имеет тот же результат!

Может ли кто-нибудь помочь мне или указать мне на какую-нибудь приличную документацию/примеры? Спасибо!


person Mike    schedule 16.12.2018    source источник
comment
Правильно, поэтому я могу вручную построить свою строку из dateTime: 'string dateTimeStr = dateTime.Day.ToString() + - + dateTime.Month.ToString() + - + dateTime.Year.ToString();' Но должен быть более простой способ. Я также хотел бы исключить время из переменной dateTime, чтобы она правильно сортировалась.   -  person Mike    schedule 16.12.2018


Ответы (1)


Попробуй это:

string dateTimeString = "2018-12-16";
System.DateTime dateTime = System.DateTime.Parse(dateTimeString);
print(dateTime.ToString("yyyy-MM-dd"));

Дополнительную информацию можно найти здесь: https://docs.microsoft.com/en-us/dotnet/api/system.datetime?view=netframework-4.7.2#datetime-values-and-their-строковыепредставления

person Oscar    schedule 16.12.2018