C# 将类似“mm/dd/yyyy hh:mm:ss tt”的字符串转换为日期时间
我必须将字符串(如10/23/2017 12:00:00 AM)转换为DateTime 通过引用 当我运行给定的代码时,我得到: System.FormatException 这个错误进一步说明 字符串未被识别为有效的日期时间C# 将类似“mm/dd/yyyy hh:mm:ss tt”的字符串转换为日期时间,c#,string,datetime,C#,String,Datetime,我必须将字符串(如10/23/2017 12:00:00 AM)转换为DateTime 通过引用 当我运行给定的代码时,我得到: System.FormatException 这个错误进一步说明 字符串未被识别为有效的日期时间 如何将字符串转换为日期时间?解析时的大多数问题都是由于字符串格式不正确造成的,这里就是这种情况。查看您的格式字符串: mm/dd/yyyy hh:mm:ss tt 这意味着: 两位数分钟 2位数的月份日 四位数年份 半天的2位数小时1-12 两位数分钟 两位数秒 am/
如何将字符串转换为日期时间?解析时的大多数问题都是由于字符串格式不正确造成的,这里就是这种情况。查看您的格式字符串:
mm/dd/yyyy hh:mm:ss tt
这意味着:
两位数分钟
2位数的月份日
四位数年份
半天的2位数小时1-12
两位数分钟
两位数秒
am/pm指示器
有两个可疑的方面:
您指定了两次分钟。你的意思是第一部分的月份,这意味着你想要MM
您指定了两位数的半天小时,这是很少使用的。例如,我希望看到的是上午8:00:00,而不是上午8:00:00。
因此,我怀疑您需要以下格式字符串:
MM/dd/yyyy h:mm:ss tt
完整代码:
DateTime date1 = DateTime.ParseExact(
dateString, "MM/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
问题是mm表示分钟-您希望在格式字符串的开头有mm。@CodeCaster:该示例显示OP使用的是固定区域性,因此它不应该是一个区域性问题。@Jon完全正确,无需担心,我已经重新打开了。另请阅读Jon的文章,名为。
DateTime date1 = DateTime.ParseExact(
dateString, "MM/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);