c# - 为什么 DateTime.ParseExact() 不能使用 “4/4/2010 4:20:00 PM” “M'/'d'/'yyyy H' :'mm' :'ss' 'tt” 解析 0x104567910 中的 AM/PM

标签 c# datetime parsing

我正在使用 C#,如果我这样做的话

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

返回值始终为凌晨 4:20——我使用 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)。在您遇到问题之前,这是真正无关紧要的事情之一,因此养成指定文化信息的习惯可能会很好。

关于c# - 为什么 DateTime.ParseExact() 不能使用 “4/4/2010 4:20:00 PM” “M'/'d'/'yyyy H' :'mm' :'ss' 'tt” 解析 0x104567910 中的 AM/PM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2596969/

相关文章:

date - oNode 被设置为 Nothing,但这是为什么,我该如何解决?

python - 如何控制 Pandas 中每小时的 GROUPBY 设置?

java - ANTLR树遍历器,多次返回值

java - XML 解析(SAX、StAX)与 Scanner

c# - 当两个引用的程序集都定义类型 A.A1 时出现问题

c# - 如何使 HttpContext 在同步调用的任务中可用?

c# - 复杂模型+集合+IFormFile的REST API模型绑定(bind)

c# - 如何在 C# 中使用 LINQ 比较 2 个 XML

php - 如何在 laravel 中验证多种格式的日期时间

python - 在Python中提取多个子字符串时声明停止位置