我想根据用户which may be d
for the day of the month without a leading zero提供的自定义日期字符串格式化DateTime
对象:
var date = DateTime.ParseExact("2016-11-05T15:30:00", "yyyy-MM-dd\\THH:mm:ss", null);
Console.WriteLine(date.ToString("d."));
Console.WriteLine(date.ToString("d"));
Console.WriteLine(date.ToString("dd."));
Console.WriteLine(date.ToString("dd"));
结果出人意料地突出:
5.
11/5/2016
05.
05
为什么不出现5
?
有没有办法获得5
而没有制作特殊的case
语句,并且没有在每个格式字符串中添加其他字符并在处理后剥离它们(这可能会或可能不会导致其他格式字符串的错误没有检查,但用户可能会提出)?
答案 0 :(得分:2)
" d"是标准时间日期的格式,如果您希望它只作为自定义格式显示日期,请添加"%"对它,像这样:
Console.WriteLine(date.ToString("%d"));
请参阅:https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx#dSpecifier
答案 1 :(得分:1)
尝试以下方法:
string d = string.Format("{0:d }", date);
// ^ this space is important
// output will have a trailing space, e.g. '5 '