2014-06-26 88 views
2

我提供了一个应用程序,用户可以通过任何给定的格式字符串格式化任何日期。 我发现的问题如下:标准日期格式与自定义日期格式

比方说,我想将日期格式化为单月份索引。这是今天的“6”。
但是:

DateTime.Today.ToString("dd.MM.yyyy") => 26.06.2014<br/> 
DateTime.Today.ToString("M") => **26 Juni**<br/> 
DateTime.Today.ToString("dM") => 266 

使用MSDN我发现,那个“M”是 - 如果使用单数 - 一个标准的格式说明,但如果与其他字符使用,它是一个自定义格式说明(http://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx; http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx

问题:如何强制解释给定的格式字符串始终作为自定义格式说明符?

回答

4

在第二个的情况下,你需要指定的M是通过提供%符号的自定义格式说明:

Console.WriteLine(DateTime.Today.ToString("%M")); 

打印:

根据到MSDN: Custom Date and Time Format StringsMSDN: Using Single Custom Format Specifiers%符号:

将以下字符定义为自定义格式说明符。

我猜如果用户可以指定字符串,你应该总是用%来逃避它。

+1

下面是MSDN相关部分的链接:http://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx#UsingSingleSpecifiers – crush

+1

就是这样。谢谢。 我在回答之前阅读了这部分内容,但很明显没有得到它。 – Norman