C# 自定义日期格式化程序未输出我期望的内容
考虑这一点:C# 自定义日期格式化程序未输出我期望的内容,c#,.net,C#,.net,考虑这一点: DateTime.Now.ToString(“d”)//2016年5月26日 我希望上面的输出是“26”,因为“d”是自定义格式的“day”说明符 此代码输出我期望的结果,但带有尾随空格: DateTime.Now.ToString(“d”)//26 但是医生们对此只字未提 这是a和a之间的区别。这两种格式字符串是单独记录的,但它们被相同的方法使用(不仅是DateTime.ToString(),而且还有String.format()和许多其他地方)。为了能够将同一输入解释为任何一种
DateTime.Now.ToString(“d”)//2016年5月26日
我希望上面的输出是“26”,因为“d”是自定义格式的“day”说明符
此代码输出我期望的结果,但带有尾随空格:
DateTime.Now.ToString(“d”)//26
但是医生们对此只字未提
这是a和a之间的区别。这两种格式字符串是单独记录的,但它们被相同的方法使用(不仅是
DateTime.ToString()
,而且还有String.format()
和许多其他地方)。为了能够将同一输入解释为任何一种格式字符串,必须首先检查输入是否与标准格式字符串匹配,并在且仅在匹配失败时使用自定义格式,如自定义格式字符串文档摘录中所述:
任何不是标准日期和时间格式字符串的字符串都将被解释为自定义日期和时间格式字符串
以及标准格式字符串的文档:
任何包含多个字符(包括空格)的日期和时间格式字符串都被解释为自定义日期和时间格式字符串
在这种情况下,“d”
与短日期的标准格式相匹配,因此产生了5/26/2016
结果(您必须在大西洋的另一边,远离我)。但是“d”
不是标准格式字符串,当作为自定义格式字符串计算时,仅显示当月的当前日期
如果您只需要月份中的某一天,而不需要尾随空格,则可以执行以下操作:
DateTime.Now.Day.ToString()
试试这个
DateTime.Now.ToString("d ").Trim()
或
Brandon,当你在参数C#中加空格时,假设你正在尝试自定义格式,这就是为什么只显示了一天。看:我想问题是,如果没有空格,它会假设我想要什么?我正在尝试做一个定制的格式。好了,你来了。谢谢你,小胡子!另外,在您自己的链接中,“如果在没有其他自定义格式说明符的情况下使用“d”格式说明符,它将被解释为“d”标准日期和时间格式说明符。有关使用单个格式说明符的更多信息,请参阅本主题后面的使用单个自定义格式说明符。”
DateTime.Now.Day.ToString()