使用当前时间将String(Textbox.text)转换为DateTime

时间:2013-04-17 18:17:12

标签: c# .net

我正在尝试将此转换为例如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();

5 个答案:

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