2017-08-24 61 views
-2
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); 
    } 
} 

在上面的代碼中,解析格式包含多個%符號。他們的意思是什麼?他們是否應該照顧單/雙位月/日期等?C#日期時間解析百分比符號的含義(%)

+4

這是由[細手冊]覆蓋(https://docs.microsoft.com/dotnet/standard/base-types/custom-date-and-time-format-strings#UsingSingleSpecifiers) 。在這種情況下,使用'%'是可選的,因爲字符串不止一個字符,並且沒有特別的效果。作者可能會傾向於保持一致性。 –

回答

0

作爲每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 '