我正在尝试将此转换为例如12/31/2012格式为DateTime,但是当我运行此代码时,转换有效,但时间不是最新的。我希望转换为DateTime但使用当前时间:
示例:当我运行以下代码并输入日期时:12/31/2012
我得到:12/31/2012 12:00:00 AM
我不知道如何获取当前时间而不是凌晨12:00:00
Console.Write("Enter Current Date: ");
string strMyDate = Console.ReadLine();
DateTime dt = DateTime.Parse(strMyDate);
Console.WriteLine(dt);
Console.ReadKey();
答案 0 :(得分:9)
您只能使用DateTime.Now
属性从TimeOfDay
中提取时间并将其添加到您手动输入的日期,例如
var time = dt.Add(DateTime.Now.TimeOfDay);
作为补充说明,我会使用 DateTime.TryParse ,因为用户输入的值可能不是可解析的日期,例如
DateTime dt;
var isDate = DateTime.TryParse(strMyDate, out dt);
if(isDate)
{
var time = dt.Add(DateTime.Now.TimeOfDay);
}
答案 1 :(得分:1)
DateTime.Now
会给你当前时间。比将第一个值的日期部分与Now
的时间部分组合起来得到结果。
答案 2 :(得分:1)
将此添加到您的字符串中:
string strMyDate = Console.ReadLine();
strMyDate = string.Format("{0} {1}",
strMyDate,
DateTime.Now.ToShortTimeString());
答案 3 :(得分:1)
实际上没有编译过这个,但是这样的事情应该有效:
DateTime dt = DateTime.Parse("12/31/2012 " + DatTime.Now.TimeOfDay.ToString());
答案 4 :(得分:1)
您可以从DateTime.Now;
的小时,分钟和秒部分构建时间string strMyDate = "12/31/2012";
DateTime dt = DateTime.Parse(strMyDate);
DateTime current = DateTime.Now;
dt = dt.AddHours(current.Hour).AddMinutes(current.Minute).AddSeconds(current.Second);
Console.WriteLine(dt);