C# 什么是;s";作为格式说明符做什么?

C# 什么是;s";作为格式说明符做什么?,c#,.net,string-formatting,C#,.net,String Formatting,这个表达式string.format(“{0:s}”,“hello world”)中的“:s”是否表示变量是字符串?我只是不知道为什么会有人这样做 我在代码中发现了这一点,希望删除“:s”,但希望确保我没有改变行为。这是标准日期和时间格式字符串的格式 在您的情况下(打印字符串),我认为它对输出没有影响 说明符作用于日期时间值,将其转换为适合排序的显示格式。 例如调用此代码 string result = string.Format("-{0:s}-", DateTime.Now); Cons

这个表达式
string.format(“{0:s}”,“hello world”)
中的
“:s”
是否表示变量是字符串?我只是不知道为什么会有人这样做

我在代码中发现了这一点,希望删除
“:s”
,但希望确保我没有改变行为。

这是标准日期和时间格式字符串的格式

在您的情况下(打印字符串),我认为它对输出没有影响

说明符作用于日期时间值,将其转换为适合排序的显示格式。
例如调用此代码

 string result = string.Format("-{0:s}-", DateTime.Now);
 Console.WriteLine(result)
将打印

2013-09-04T19:27:56

在接下来的9分钟内我不能接受你的回答,所以我很快就会回答。非常感谢。有趣的是,这正用于URL和其他非日期值。更多信息来自MSDN文档:
SortableDateTimePattern属性定义了日期字符串的区域性特定格式,这些日期字符串是通过调用DateTime.ToString和DateTimeOffset.ToString方法以及通过“s”提供的复合格式字符串返回的标准格式字符串。
至于原因:在其他一些语言中,例如C和Java,字符串格式更像字符串的
%s
,数字的
%d
,等等。熟悉这一点的人可能会自然地尝试对字符串使用
{0:s}
(而不是
{0}
)。说得好。那一定是发生的事。