Ответ 1
Попробуйте следующее:
string format = "dd.MM.yyyy";
Console.WriteLine($"{DateOfSmth.ToString(format)}");
ситуация, в которой я находилась, следующая:
У меня есть интерполированная строка, выглядящая так:
DateTime DateOfSmth;
string PlaceOfSmth;
$"{DateOfSmth}, {PlaceOfSmth}".Trim(' ',',');
И формат, который должен использоваться на нем в:
string Format = "{0:dd.MM.yyyy}";
Теперь я хотел бы использовать формат в свойстве Format
в интерполированной строке, но я не знаю, как это сделать.
I.E: Мне бы хотелось, чтобы в результате получилось следующее:
$"{DateOfSmth:Format}, {PlaceOfSmth}".Trim(' ',',');
Может ли кто-нибудь помочь?
Попробуйте следующее:
string format = "dd.MM.yyyy";
Console.WriteLine($"{DateOfSmth.ToString(format)}");
Изменить: это неправильный ответ на вопрос, но было бы полезно, если вы хотите отформатировать DateTime
с помощью нужного форматирования даты и времени.
Если вы пытаетесь отформатировать тип DateTime
, есть много способов сделать это, и я вижу, что лучший способ - использовать метод String.Format
с специальными спецификаторами формата, которые связаны с датой и временем (например, y
за год, M
за месяц и d
за день), чем вы можете сохранить это значение в переменной и использовать его в любом месте.
Это рабочий пример:
DateTime currentDate = new DateTime(2015, 3, 23, 12, 40, 5, 112);
String.Format("{0:y yy yyy yyyy}", currentDate ); // result -> "15 15 015 2015"
String.Format("{0:M MM MMM MMMM}", currentDate ); // result -> "3 03 Mar March"
Также вы можете использовать спецификаторы стандартного формата, например:
t
для "ShortTimePattern", который приведет к (h: mm tt).
d
для "ShortDatePattern", который приведет к (M/d/yyyy).
t
для "LongTimePattern", который приведет (h: mm: ss tt).
d
для "LongDatePattern", который приведет к (dddd, MMMM dd, yyyy).
Это рабочий пример:
String.Format("{0:t}", currentDate); // result -> "12:40 PM" ShortTime
String.Format("{0:d}", currentDate); // result -> "3/23/2015" ShortDate
String.Format("{0:T}", currentDate); // result -> "12:40:05 PM" LongTime
String.Format("{0:D}", currentDate); // result -> "Wednesday, March 23, 2015" LongDate
Полную ссылку см. на странице MSDN здесь.
В конце я оставил принятый ответ на @diiN_. Используемое решение:
//this format is given and I can't change it
string Format = "{0:dd.MM.yyyy}";
DateTime? Date = DateTime.Today;
string Place = "Washington";
string.Format(Format + ", {1}", Date, Place);