【问题标题】:C# datetime parse meaning of percentage symbol(%)C# datetime 解析百分比符号(%)的含义
【发布时间】:2018-02-02 04:21:33
【问题描述】:
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);
  }
}

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

【问题讨论】:

  • fine manual 涵盖了这一点。在这种情况下,% 的使用是可选的,因为字符串不止一个字符,并且没有特别的效果。作者可能更喜欢它的一致性。

标签: c# datetime datetime-format


【解决方案1】:

根据https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings#UsingSingleSpecifiers

自定义日期和时间格式字符串由两个或多个 人物。日期和时间格式化方法解释任何 作为标准日期和时间格式字符串的单字符串。如果 他们不将字符识别为有效的格式说明符,他们 抛出一个 FormatException。例如,一个格式字符串包含 只有说明符“h”被解释为标准日期和时间 格式字符串。但是,在这种特殊情况下,一个例外是 因为没有“h”标准日期和时间格式说明符而被抛出。

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

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

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 '

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 2017-03-05
    相关资源
    最近更新 更多