结合日期和时间

时间:2013-02-20 07:50:54

标签: c# .net datetime exception-handling datetime-parsing

我需要结合日期和时间并插入一个日期时间行。

这是我的代码:

 DateTime Headlinedate;

 try
 {
     DateTime date = Convert.ToDateTime(txtHeadlinedate.Text.Trim(), Ci);
     string timestr = DateTime.Now.ToString("hh:mm:ss tt");
     DateTime combinedDate = date.Add(TimeSpan.Parse(timestr));
     Headlinedate = combinedDate;

 }
 catch {
     Headlinedate = DateTime.Now;
 }

我得到例外:

  

输入字符串的格式不正确

7 个答案:

答案 0 :(得分:4)

如果第一行代码出现此异常,则必须确保txtHeadlinedate的内容有效并进行相应的解析。

如果错误来自对TimeSpan.Parse的调用,则以下版本应解决问题:

DateTime date = Convert.ToDateTime(txtHeadlinedate.Text.Trim(), Ci);
Headlinedate = date.Add(DateTime.Now.TimeOfDay);

答案 1 :(得分:2)

TimeSpan无法解析“tt”。使用DateTime对其进行解析,或者使用HH:mm格式获取24小时的小时值并从格式中删除tt部分。然后TimeSpan将能够解析它。例如:

DateTime date = Convert.ToDateTime(txtHeadlinedate.Text.Trim(), Ci);
string timestr = DateTime.Now.ToString("HH:mm:ss");
DateTime combinedDate = date.Add(TimeSpan.Parse(timestr));
Headlinedate = combinedDate;

答案 2 :(得分:0)

date.Hour=DateTime.Now.Hour;
date.Minute=DateTime.Now.Minute;
date.Second=DateTime.Now.Second;

答案 3 :(得分:0)

使用DateTime.TryParse并传递txtHeadlinedate.Text.Trim()

DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

用于增加时间跨度值 要么使用

DateTime myDate = ExistingTime.Date.AddHours(hh).AddMinutes(min);

或 //计算从这一刻起36天的星期几(如下所示)

System.DateTime today = System.DateTime.Now; System.TimeSpan duration = new System.TimeSpan(36, 0, 0, 0); System.DateTime answer = today.Add(duration);

答案 4 :(得分:0)

我想这应该可行

DateTime Headlinedate;
try
         {
             DateTime date = Convert.ToDateTime(txtHeadlinedate.Text.Trim(), Ci);
             string timestr = DateTime.Now.ToString("MM/dd/yyyy HH:MM:ss");// here is the solution
             DateTime combinedDate = date.Add(TimeSpan.Parse(timestr));
             Headlinedate = combinedDate;

         }
         catch {
             Headlinedate = DateTime.Now;
         }

答案 5 :(得分:0)

DateTime date = Convert.ToDateTime(txtHeadlinedate.Text.Trim(), Ci);    
DateTime combinedDate = new DateTime(date.Year, date.Month, date.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);

答案 6 :(得分:-1)

这有效!

background-size: cover;
相关问题