You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何将字符串"2018-05-10 10-AM"转换为DateTime对象?

问题分析与解决办法

嘿,我一眼就看到你代码里的两个关键问题啦,这就是导致异常的原因:

  • 第一个问题:待转换的字符串传错了
    你在ParseExact里写的是"values[0]"——这是一个固定的字面量字符串,而不是你实际要转换的那个日期字符串变量。如果values[0]是存储目标日期的数组元素,得去掉引号,直接写values[0]才行。

  • 第二个问题:格式字符串的小时格式不匹配
    你的目标日期是"2018-05-10 10-AM",带AM说明是12小时制的时间,但你用了HH格式符——HH对应的是24小时制的小时(范围00-23),12小时制的小时应该用hh(范围01-12),这样才能和后面的tt(AM/PM标识)匹配上。

修正后的代码示例

// 假设values[0]是存储目标日期的变量
string dateString = values[0];
// 或者直接用测试字符串:string dateString = "2018-05-10 10-AM";
var date = DateTime.ParseExact(dateString, "yyyy-MM-dd hh-tt", System.Globalization.CultureInfo.InvariantCulture);

额外小提示

如果还是有问题,可以先检查下values[0]的实际值,确保它确实是"2018-05-10 10-AM"这种格式,没有多余的空格或者拼写错误哦。

内容的提问来源于stack exchange,提问作者Beardy Bear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:27:23