2010-09-22 43 views
0

这是要健全挺无聊的,但我不能让一个字符串转换成承载我试试这个日期和时间ASP.NET C#字符串为DateTime愁楚

一个DateTime:

Response.Write(year + " " + month + " " + day + " " + hour + " " + min); 
//prints 2008 9 23 11 59 0 (represents 9/23/2008 11:59 00 AM) 
DateTime dt= new DateTime(year , month , day , hour , min , 00); 

但它告诉我,它不是一个可表示的DateTime。这里同样的事情。

String toParse = "9/23/2008" + " " + hour + ":" + minute + " 00 " + "AM" ; 
DateTime dt= Convert.ToDateTime(toParse); 

我有这么多麻烦。我如何正确地做到这一点?

+0

仅供参考:不是写的'的Response.Write(年+ “+ +月+”“+日+”“+小时+”“+分);',它'打赌这样做:'Response.Write(string.Format(“{0} {1} {2} {3} {4} 0”,year,month,day,hour,min));' – 2010-09-22 17:06:46

+2

第一个例子应该管用。你确定你把它正确地复制了吗? Response.Write只写入5个值,打印注释显示6个。 – Brandon 2010-09-22 17:06:55

+0

可以在失败时发布'toParse'的值和'dt.ToString()'的值吗? – 2010-09-22 17:27:46

回答

2

我觉得你的问题是在这里

+ minute + " 00 " + "AM" 

应该是:

+ minute + ":00 " + "AM" 
0
Check this link for more info:- 

http://msdn.microsoft.com/en-us/library/9xk1h71t.aspx

using System; 

    using System.Globalization; 

    public class Example 
    { 
    public static void Main() 
     { 
     Console.WriteLine("{0,-18}{1,-12}{2}\n", "Date String", "Culture", "Result"); 

     string[] cultureNames = { "en-US", "ru-RU","ja-JP" }; 
     string[] dateStrings = { "01/02/09", "2009/02/03", "01/2009/03", 
           "01/02/2009", "21/02/09", "01/22/09", 
           "01/02/23" }; 
     // Iterate each culture name in the array. 
     foreach (string cultureName in cultureNames) 
     { 
     CultureInfo culture = new CultureInfo(cultureName); 

     // Parse each date using the designated culture. 
     foreach (string dateStr in dateStrings) 
     { 
      DateTime dateTimeValue; 
      try { 
       dateTimeValue = Convert.ToDateTime(dateStr, culture); 
       // Display the date and time in a fixed format. 
       Console.WriteLine("{0,-18}{1,-12}{2:yyyy-MMM-dd}", 
            dateStr, cultureName, dateTimeValue); 
      } 
      catch (FormatException e) { 
       Console.WriteLine("{0,-18}{1,-12}{2}", 
            dateStr, cultureName, e.GetType().Name); 
      } 
     } 
     Console.WriteLine(); 
     } 
    } 
} 
+0

无论何时您发布代码,特别是整个班级,最好包含一些额外的信息,以了解它的用途或发布原因。 – Brandon 2010-09-22 17:11:32

+0

@Brandon:我以为代码是自我解释..... :)对不起 – 2010-09-22 17:15:14