I have a time string as 12:48 AM
. I want to convert this string into TimeSpan
to append with DateTime
Object. Currently I am trying the following snippets.
string format = "dd/MM/yyyy";
CultureInfo provider = CultureInfo.InvariantCulture;
var date = DateTime.ParseExact(dateValue, format, provider);
string timeFormate = "H:mm AM";
string timeValue = "12:48 AM";
var time = TimeSpan.ParseExact(timeValue,timeFormate,provider);
DateTime launchDate = date + time;
I am getting
Input string was not in a correct format
exception at line
var time = TimeSpan.ParseExact(timeValue,timeFormate,provider);
Please suggest me how to convert my specified string into time.
You need to parse that time into DateTime
and then simply extract the TimeOfDay
out of it when appending to the original date:
using System;
using System.Globalization;
namespace Sample
{
class Program
{
static void Main(string[] args)
{
var dateValue = "10/03/1987";
var date = DateTime.ParseExact(dateValue, "dd/MM/yyyy", CultureInfo.InvariantCulture);
var timeValue = "12:48 AM";
var time = DateTime.ParseExact(timeValue, "h:mm tt", CultureInfo.InvariantCulture);
var dateTime = date + time.TimeOfDay;
Console.WriteLine(date);
Console.WriteLine(time);
Console.WriteLine(dateTime);
}
}
}
OUTPUT:
3/10/1987 12:00:00 AM
11/12/2014 12:48:00 AM
3/10/1987 12:48:00 AM
You can parse it to DateTime
and use it's TimeOfDay
property to get the time:
DateTime time = DateTime.ParseExact("12:48 AM", "h:mm tt", CultureInfo.InvariantCulture);
DateTime launchDate = date + time.TimeOfDay;
Note that i've also changed the format string since you need tt
for the AM/PM designator.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With