如何在c#中转换时间

时间:2017-01-10 15:53:46

标签: c# datetime

我有博士[" TelaCastTime"]。ToString()= 24:25:30。因为它没有转换为DateTime并显示错误。如果时间24:25:30将来,我该如何处理?

DateTime dt = Convert.ToDateTime(dr["TelaCastDate"].ToString() +""+dr["TelaCastTime"].ToString())'

4 个答案:

答案 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");

告诉我是否可以