[英]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.