简体   繁体   English

在C#中,如何将字符串时间(格式为HH:mm)转换为DateTime变量?

[英]In C#, how can I convert a string time (formatted as HH:mm) into a DateTime variable?

I have a string that represents a time formatted as "HH:mm", say for example "8:15" (assuming the time is in 24 hour format). 我有一个字符串,表示时间格式为“ HH:mm”,例如“ 8:15”(假设时间为24小时格式)。 In C#, How can I convert that into a DateTime instance where the date is today's date and the time is 8:15 AM? 在C#中,如何将其转换为DateTime实例,其中的日期是今天的日期,时间是8:15 AM?

string ds = "8:15";
string[] parts = ds.Split(new[] { ':' });
DateTime dt = new DateTime(
                   DateTime.Now.Year,
                   DateTime.Now.Month,
                   DateTime.Now.Day,
                   Convert.ToInt32(parts[0]), 
                   Convert.ToInt32(parts[1]));
 DateTime.Parse(DateTime.Now.Date.ToString() + " " + yourString);
       string time ="8:15";            
       DateTime date = DateTime.Parse(DateTime.Now.ToString("M/d/yyyy ") + time);

You can probably parse the time using TimeSpan.ParseExact and then add it to today's date by using DateTime.Add . 您可能可以使用TimeSpan.ParseExact解析时间,然后使用DateTime.Add将其添加到今天的日期。

Given that your time is in a variable like this: 鉴于您的时间在这样的变量中:

var timeText = "8:15";

Parse the time like this: 像这样解析时间:

var time = TimeSpan.ParseExact(timeText, "h:mm", /*todo*/);

Fill the last argument depending on your requirements. 根据您的要求填写最后一个参数。

Then add it to today's date: 然后将其添加到今天的日期:

DateTime.Today.Add(time);

Assuming situation for current date: 假设当前日期的情况:

    string time ="8:15";
    var dt = Convert.ToDateTime(String.Format("{0} {1}",
             DateTime.Now.ToShortDateString(),time));

If you have a valid date in string then, you can use. 如果字符串中有有效日期,则可以使用。 Also you can use DateTime.TryParse() to check for a valid date. 您也可以使用DateTime.TryParse()检查有效日期。

 var date ="01/01/2014";
  var dt = Convert.ToDateTime(String.Format("{0} {1}",
                 date,time));

You will get output 您将获得输出

01/06/2014 08:15:00

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM