2012-04-30 65 views
0

我在使用不同的日期格式時遇到困難。我有一個使用asp.netc#創建的Web應用程序。我使用了日曆控件,它顯示日期和時間。以MM/DD/YYYY格式轉換任何日期格式

然後我使用DateTime.Parse()解析這個日期。如果服務器設置爲印度日期格式,則應用程序會生成轉換錯誤「字符串未被識別爲有效的日期時間」。

有沒有辦法將任何日期格式轉換爲MM/DD/YYYY格式隨着時間? 我知道我可以使用DateTime.ParseExact(),但它會再次陷入特定的格式。

任何幫助,非常感謝。

感謝您分享您的智慧。

+2

這是什麼格式,您遇到問題?我們應該猜測嗎?請同時發佈您的解析代碼。 – Oded

+0

@Oded:我的系統設置英語(印度)在區域設置格式(30-04-2012 16:40),在那裏,因爲我用JQuery的日期格式得到04/30/2012 16時四十○分10秒。所以我在使用DateTime.Parse()時遇到了轉換錯誤。 – IrfanRaza

+0

爲什麼不使用帶有IFormatProvider的重載,例如印度'CultureInfo'對象? – Oded

回答

2
Convert.ToDateTime(DateTime.Now, CultureInfo.GetCultureInfo("en-US")).ToString("MM/dd/yyyy hh:MM:ss"); 

您可以用hi-IN替換en-US作爲印地語日期或根據您的喜好。請按照鏈接。文化信息。

http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(v=vs.80).aspx

如果您不確定文化,然後使用下面一行。

Convert.ToDateTime(DateTime.Now, CultureInfo.CurrentCulture).ToString("MM/dd/yyyy hh:MM:ss"); 

這裏參考http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.currentculture.aspx

其他可以使用的方法是。

DateTime dt; 
DateTime.TryParse(DateTime.Now.ToString(), out dt); 
+0

感謝Kamran。請閱讀我的評論以回覆Oded。我沒有被任何特定的格式卡住。 – IrfanRaza

+0

irfan使用嘗試解析,它會嘗試解析任何格式的日期。並將其存儲在變量中。如果你不確定文化。 –

0

您可以使用此代碼。

public static CultureInfo CreateCulture(string shortDateFormat) 
{ 

     CultureInfo newCulture = CultureInfo.CreateSpecificCulture("en-US"); 
     newCulture.DateTimeFormat.ShortDatePattern = shortDateFormat; 
     newCulture.DateTimeFormat.LongDatePattern = shortDateFormat; 

     return newCulture; 
} 
0

您可以爲此創建一個擴展方法,您需要使用靜態方法創建一個靜態類。它會回報你,你在類中定義現在

public static class DateExtension 
    { 
     public static string GetDateTime(this DateTime? date) 
     { 
      if (date.HasValue) 
       return date.Value.ToString("dd-MMM-yyyy hh:mm tt"); 
      return string.Empty; 
     } 
    } 

日期格式在你的代碼,你可以使用這個擴展如DateTime.GetDateTime()它會返回日期,其時間與您在擴展庫類中指定的格式相同

0
string s; 
s = dt.ToString("MM-dd-yyyy"); 
Console.WriteLine(s);//Displays 04-30-2012