2

我正在尝试将此例如 12/31/2012 格式转换为 DateTime,但是当我运行此代码时,转换有效,但时间不是当前的。我希望转换为 DateTime 但使用当前时间:

示例:当我运行以下代码并输入日期时:12/31/2012

我得到: 2012 年 12 月 31 日上午 12:00:00

我不确定如何获取当前时间而不是 12:00:00 AM

    Console.Write("Enter Current Date: ");

    string strMyDate = Console.ReadLine();

    DateTime dt = DateTime.Parse(strMyDate);

    Console.WriteLine(dt);

    Console.ReadKey();
4

5 回答 5

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);
}
于 2013-04-17T18:19:30.260 回答
1

DateTime.Now会给你当前时间。然后将第一个值的日期部分与时间部分相结合Now以获得结果。

于 2013-04-17T18:19:36.483 回答
1

将此添加到您的字符串中:

string strMyDate = Console.ReadLine();
strMyDate = string.Format("{0} {1}",
    strMyDate,
    DateTime.Now.ToShortTimeString());
于 2013-04-17T18:19:40.147 回答
1

还没有真正编译这个,但这样的东西应该可以工作:

DateTime dt = DateTime.Parse("12/31/2012 " + DatTime.Now.TimeOfDay.ToString());
于 2013-04-17T18:20:44.390 回答
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);
于 2013-04-17T18:21:33.867 回答