我所处的情况如下:
我有一个插值字符串,如下所示:
DateTime DateOfSmth;
string PlaceOfSmth;
$"{DateOfSmth}, {PlaceOfSmth}".Trim(' ',',');
以及应该在其中使用的格式:
string Format = "{0:dd.MM.yyyy}";
现在我想在插值字符串中使用属性Format
中的格式,但我不知道如何。
I.E:我喜欢这样的结果:
$"{DateOfSmth:Format}, {PlaceOfSmth}".Trim(' ',',');
有人可以帮忙吗?
答案 0 :(得分:14)
试试这个:
string format = "dd.MM.yyyy";
Console.WriteLine($"{DateOfSmth.ToString(format)}");
答案 1 :(得分:2)
修改:这不是问题的正确答案,但如果您想使用所需的日期和时间格式设置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页面here。
答案 2 :(得分:0)
最后,我将接受的答案留给了@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);