Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 结合日期和时间_C#_.net_Datetime_Exception Handling_Datetime Parsing - Fatal编程技术网

C# 结合日期和时间

C# 结合日期和时间,c#,.net,datetime,exception-handling,datetime-parsing,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.Pars

我需要合并日期和时间,并插入到一个日期时间行中

这是我的密码:

 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;
 }
我有个例外:

输入字符串的格式不正确


如果您得到第一行代码的此异常,则必须确保
txthheadlinedate
的内容有效,并相应地对其进行解析

如果错误来自调用
TimeSpan.Parse
,则以下版本应修复此问题:

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

如果您得到第一行代码的此异常,则必须确保
txthheadlinedate
的内容有效,并相应地对其进行解析

如果错误来自调用
TimeSpan.Parse
,则以下版本应修复此问题:

DateTime date = Convert.ToDateTime(txtHeadlinedate.Text.Trim(), Ci);
Headlinedate = date.Add(DateTime.Now.TimeOfDay);
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;
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;

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

DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime)
以及添加时间跨度值 任用

DateTime myDate = ExistingTime.Date.AddHours(hh).AddMinutes(min);
或 //计算从现在算起36天是一周中的哪一天。(如下所示)


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

DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime)
以及添加时间跨度值 任用

DateTime myDate = ExistingTime.Date.AddHours(hh).AddMinutes(min);
或 //计算从现在算起36天是一周中的哪一天。(如下所示)


我想这应该行得通

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;
         }

我想这应该行得通

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;
         }
这管用

DateTime _dateOnly = DateTime.Now;
DateTime _timeOnly = DateTime.Now;

public DateTime Combined { get; set; }

      public DateTime DateOnly
        {
            get { return _dateOnly.Date; }
            set
            {
                _dateOnly = value.Date;
                Combined = DateOnly.Add(TimeOnly.TimeOfDay);
            }
        }

        public DateTime TimeOnly
        {
            get { return _timeOnly.ToLocalTime(); }
            set
            {
                _timeOnly = value.ToLocalTime();
                Combined = DateOnly.Add(TimeOnly.TimeOfDay);
            }
        }
这管用

DateTime _dateOnly = DateTime.Now;
DateTime _timeOnly = DateTime.Now;

public DateTime Combined { get; set; }

      public DateTime DateOnly
        {
            get { return _dateOnly.Date; }
            set
            {
                _dateOnly = value.Date;
                Combined = DateOnly.Add(TimeOnly.TimeOfDay);
            }
        }

        public DateTime TimeOnly
        {
            get { return _timeOnly.ToLocalTime(); }
            set
            {
                _timeOnly = value.ToLocalTime();
                Combined = DateOnly.Add(TimeOnly.TimeOfDay);
            }
        }

调试时,
date
的格式是什么?
DateTime combinedDate=date.Add(DateTime.Now.TimeOfDay)
而不是从字符串解析
TimeSpan
。调试它时,
date
的格式是什么?
DateTime combinedDate=date.Add(DateTime.Now.TimeOfDay)
而不是从字符串解析
TimeSpan
。这是一个相当糟糕的答案,为什么要在一个步骤中执行3个步骤?这与此问题相关,因为..?首先,您不应该多次读取
Now
属性。时钟可能会改变,因此,如果在阅读第一部分时为
09:59:59
,在阅读最后一部分时为
10:00:00
,则可能会出现类似
09:00:00
的混音,这与真正的“现在”相差甚远。另外,如果您的
date
标识符应该是
DateTime
值,您可以像这样对其进行变异。所讨论的属性仅为
get
(无设置器)。否决票。这是一个相当糟糕的答案,为什么你要在一个步骤中完成3个步骤?这与这个问题相关,因为…?首先,你不应该多次阅读
Now
属性。时钟可能会改变,因此,如果在阅读第一部分时为
09:59:59
,在阅读最后一部分时为
10:00:00
,则可能会出现类似
09:00:00
的混音,这与真正的“现在”相差甚远。另外,如果您的
date
标识符应该是
DateTime
值,您可以像这样对其进行变异。所讨论的属性仅为
get
(无设置器)。向下投票。若要绝对确保从第一行(文本字符串的转换)中未获得时间组件,可以在第一行末尾添加一个
.Date
。若要绝对确保从第一行(文本字符串的转换)中未获得时间组件,您可以在第一行末尾添加一个
.Date
。实际上不需要将“now”转换为时间字符串,然后将该字符串转换回
时间跨度
。对,这与ybo的答案基本相同。谢谢。没有必要将“now”转换为时间字符串,然后再将字符串转换回
TimeSpan
。对,这与ybo的答案基本相同。谢谢。不要在几分钟内使用
“MM”
;好几个月了。它的目的不是现在获取
的日期部分。这里真的没有必要使用
ToString
。不要在几分钟内使用
“MM”
;好几个月了。它的目的不是现在获取
的日期部分。这里真的没有必要使用
ToString