我有博士[" TelaCastTime"]。ToString()= 24:25:30。因为它没有转换为DateTime并显示错误。如果时间24:25:30将来,我该如何处理?
DateTime dt = Convert.ToDateTime(dr["TelaCastDate"].ToString() +""+dr["TelaCastTime"].ToString())'
答案 0 :(得分:1)
我改变了整个答案:
DateTime dt = Convert.ToDateTime(dr["TelaCastDate"].ToString());
string[] s1 = dr["TelaCastTime"].ToString().Split(':');
TimeSpan time = new TimeSpan(Convert.ToInt32(s1[0]), Convert.ToInt32(s1[1]), Convert.ToInt32(s1[2]));
DateTime yourFinalDateTime = dt.Add(time);
答案 1 :(得分:0)
如果您获得的输入真的被破坏了,您可以尝试下面的代码。它将纠正简单的数字错误,但如果输入包含的内容不仅仅是num:num:num
,则抛出string[] splits = dr["TelaCastTime"].ToString().Split(':');
int[] nums = splits.Select(x=> int.Parse(x)).ToArray();
TimeSpan dt = new TimeSpan(nums[0]%24, nums[1] %60, nums[2] %60);
答案 2 :(得分:0)
这是一个适合您输入的C#小提琴: https://dotnetfiddle.net/VO3QPz
正如在其他答案中提到的,我使用24
替换00
几个小时,然后使用DateTime.TryParse
var time = "24:25:30";
var date = "1/1/2001";
DateTime parsed = new DateTime();
if(time.StartsWith("24")){
time = "00" + time.Substring(2);
}
DateTime.TryParse(date + " " + time, out parsed);
Console.WriteLine(parsed);
答案 3 :(得分:-1)
我想你需要的解决方案是这样的
string Time = "17:08:23";
DateTime date = DateTime.Parse(Time,System.Globalization.CultureInfo.CurrentCulture);
string t = date.ToString("HH:mm:ss tt");
告诉我是否可以