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
。