将格式为12小时(04/29/2013 10:00:00 AM)的字符串转换为C#中的日期时间

时间:2013-04-29 15:02:33

标签: c# string c#-4.0 datetime service

我正在从我的config.xml中检索这样的字符串(04/29/2013 10:00:00 AM)。我想将其转换为DateTime格式。如何做到这一点?

我尝试了以下内容:

DateTime dtNextrunTimeforExcel = Convert.ToDateTime(str); 

DateTime dtNextrunTimeforExcel = DateTime.Parse(str);

但是,在这两种情况下,它都说“字符串未被识别为有效日期时间”。

注意:我正在使用VS2010编写Windows服务

PL。帮助

2 个答案:

答案 0 :(得分:2)

尝试使用.ParseExact

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

答案 1 :(得分: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);