Convert string with format 12 hour(04/29/2013 10:0

2019-08-28 04:07发布

问题:

I'm retrieving a string like this (04/29/2013 10:00:00 AM) from my config.xml.I want to convert this to DateTime format.How to do this?

I tried followings:

DateTime dtNextrunTimeforExcel = Convert.ToDateTime(str); 

and

DateTime dtNextrunTimeforExcel = DateTime.Parse(str);

But, in both the case its saying "string was not recognized as a valid datetime".

Note:I'm writing Windows service with VS2010

Pl. help.

回答1:

Try using .ParseExact

var dtNextrunTimeforExcel = DateTime.ParseExact(str, "MM/dd/yyyy hh:mm:ss", CultureInfo.CurrentCulture);


回答2:

 CultureInfo enUS = new CultureInfo("en-US"); 
 string dateString;
 DateTime dateValue;

 // Parse a string.
 dateString = "4/29/2013 10:00:00 AM"; 
 if (DateTime.TryParseExact(dateString, "mm/dd/yyyy hh:mm:ss tt", enUS, 
                    DateTimeStyles.None, out dateValue))
  Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                 dateValue.Kind);

  ///time only
  dateString = "10:00:00 AM"; 
 if (DateTime.TryParseExact(dateString, "hh:mm:ss tt", enUS, 
                    DateTimeStyles.None, out dateValue))
  Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                 dateValue.Kind);