2010-08-19 122 views
2

我有一個與TextBox綁定到DateTime列的DetailsView。該列的值以「dd/mm/yyyy hh:mm:ss」格式顯示。我需要它以「yyyy/mm/dd」格式顯示。儘管如此,最好的方法可能是在DataBound事件中格式化字符串。問題是,我似乎無法找到一種將字符串格式化爲日期的方法。 String.Format不會這樣做。如果我將字符串作爲DateTime,那麼我可以使用DateTime.Format方法。我可以通過解析字符串的各種元素來創建日期時間變量,但我不禁想到必須有更簡單的方法?C#格式字符串作爲日期

謝謝

Rob。

回答

5

像這樣應該工作:

public static string GetDateString(string date) 
{ 
    DateTime theDate; 
    if (DateTime.TryParseExact(date, "dd/MM/yyyy HH:mm:ss", 
      CultureInfo.InvariantCulture, DateTimeStyles.None, out theDate)) 
    { 
     // the string was successfully parsed into theDate 
     return theDate.ToString("yyyy'/'MM'/'dd"); 
    } 
    else 
    { 
     // the parsing failed, return some sensible default value 
     return "Couldn't read the date"; 
    } 
} 
+0

太好了,非常感謝。 – 2010-08-19 12:52:43

1

它轉換爲datetime,然後再使用的String.Format來格式化你想怎麼。

DateTime MyDateTime = Convertto.Date"01/12/2004 00:35:23", 
    "dd/MM/yyyy hh:mm:ss", System.Globalization.CultureInfo.InvariantCulture); 
    string.Format("The Date is:{0}", "yyyy/MM/dd",MyDateTime); 
1
string testDate = "19/08/2010 06:19:30"; 
DateTime asDate = DateTime.ParseExact(testDate, 
    "dd/MM/yyyy hh:mm:ss", System.Globalization.CultureInfo.InvariantCulture); 
Console.WriteLine(asDate.ToString("yyyy/MM/dd")); 
0

DataFormatString = 「{0:d}」。你可以把這個屬性給你的領域。寫在ASP頁

+0

我不知道DataFormatString屬性 - 謝謝。 但是,它似乎DateFormatSting只能用於BoundColumn。我的字段是一個TemplateField,因此我可以添加一個驗證器以確保在編輯/插入過程中使用了正確的格式。 – 2010-08-19 12:55:14