簡體   English   中英

為什么DateTime.ParseExact()無法使用“ M” /'d'/'yyyy H':'mm':'ss''在“ 4/4/2010 4:20:00 PM”中解析AM / PM tt”

[英]Why can’t DateTime.ParseExact() parse the AM/PM in “4/4/2010 4:20:00 PM” using “M'/'d'/'yyyy H':'mm':'ss' 'tt”

我正在使用c#,如果我這樣做

DateTime.ParseExact("4/4/2010 4:20:00 PM", "M'/'d'/'yyyy H':'mm':'ss' 'tt", null)

返回值始終是4:20 AM-使用tt我在做什么錯?

謝謝!

將小時格式( H )改成小寫:

DateTime.ParseExact(
            "4/4/2010 4:20:00 PM", 
            "M/d/yyyy h:mm:ss tt", 
            CultureInfo.InvariantCulture);

大寫字母“ H”表示24小時制,小寫字母“ h”表示12小時制,將遵循候選字符串中的AM / PM。

旁注:最好向此類方法提供IFormatProvider的實例(即使它只是CultureInfo.InvariantCulture )。 在您遇到問題之前,這實際上並不重要,因此養成指定文化信息的習慣可能很好。

請嘗試以下操作:

Console.WriteLine(DateTime.ParseExact("4/4/2010 4:20:00 PM", "M'/'d'/'yyyy h':'mm':'ss tt", null));

輸出:

 4/4/2010 4:20:00 PM

您需要在格式字符串中的小時參數中使用小寫的“ h”。 大寫字母“ H”表示24小時制,因此將“ 4”識別為凌晨4點(因為“ 16”表示下午4點)。

DateTime.ParseExact("4/4/2010 4:20:00 PM", "M/d/yyyy h:mm:ss:tt", null)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM