C#百分比符号的datetime解析含义(%)

C#百分比符号的datetime解析含义(%),c#,datetime,datetime-format,C#,Datetime,Datetime Format,在上面的代码中,解析格式包含多个%符号。它们是什么意思?他们是否应该同时处理一位数/两位数的月份/日期等?根据 自定义日期和时间格式字符串由两个或多个字符串组成 人物。日期和时间格式化方法解释任何 作为标准日期和时间格式字符串的单个字符串。如果 它们不能将字符识别为有效的格式说明符,因此 抛出格式化异常。例如,由以下内容组成的格式字符串 只有说明符“h”中的一个被解释为标准日期和时间 格式字符串。然而,在这种特殊情况下,有一个例外 抛出,因为没有“h”标准日期和时间格式说明符 使用任何自定义日期

在上面的代码中,解析格式包含多个%符号。它们是什么意思?他们是否应该同时处理一位数/两位数的月份/日期等?

根据

自定义日期和时间格式字符串由两个或多个字符串组成 人物。日期和时间格式化方法解释任何 作为标准日期和时间格式字符串的单个字符串。如果 它们不能将字符识别为有效的格式说明符,因此 抛出格式化异常。例如,由以下内容组成的格式字符串 只有说明符“h”中的一个被解释为标准日期和时间 格式字符串。然而,在这种特殊情况下,有一个例外 抛出,因为没有“h”标准日期和时间格式说明符

使用任何自定义日期和时间格式说明符作为唯一 格式字符串中的说明符(即使用“d”、“f”、“f”、“g”, “h”、“h”、“K”、“m”、“m”、“s”、“t”、“y”、“z”、““:”或“/”自定义格式 说明符本身),包括说明符前后的空格, 或者在单个自定义项之前包含一个百分比(“%”)格式说明符 日期和时间说明符

例如,“%h”被解释为自定义日期和时间格式 显示由当前日期和时间表示的小时的字符串 价值您也可以使用“h”或“h”格式字符串,尽管 在结果字符串中包含空格和小时。这个 下面的示例演示了这三种格式字符串

这一点包含在本手册中。在这种情况下,
%
的使用是可选的,因为字符串不止一个字符,并且没有特殊效果。作者可能更喜欢它的一致性。
using System;
class MainClass {
  public static void Main (string[] args) {
    string iString = "12/3/2017 03:24:02 PM";
    DateTime oDate = DateTime.ParseExact(iString, "%M/%d/yyyy %h:%m:%s tt",null);
    Console.WriteLine (oDate);
  }
}
DateTime dat1 = new DateTime(2009, 6, 15, 13, 45, 0);

Console.WriteLine("'{0:%h}'", dat1);
Console.WriteLine("'{0: h}'", dat1);
Console.WriteLine("'{0:h }'", dat1);
// The example displays the following output:
//       '1'
//       ' 1'
//       '1 '