我有一个DetailsView,其TextBox绑定到DateTime列。列的值以“dd / mm / yyyy hh:mm:ss”格式显示。我需要它以“yyyy / mm / dd”格式显示。虽然我有最好的方法可能是格式化DataBound事件中的字符串。问题是,我似乎无法找到将字符串格式化为日期的方法。 String.Format不会这样做。如果我将字符串作为DateTime,那么我可以使用DateTime.Format方法。我可以通过解析字符串的各种元素来创建一个日期时间变量,但我不禁想到必须有一个更简单的方法吗?
由于
罗布。
答案 0 :(得分:7)
这样的事情应该有效:
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";
}
}
答案 1 :(得分: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);
答案 2 :(得分: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"));
答案 3 :(得分:0)
DataFormatString = “{0:d}”。您可以将此属性提供给您的字段。在ASP页面中写下
答案 4 :(得分:0)
而不是使用TextBox你可以考虑使用MaskedTextBox,那么你所做的只是设置掩码(格式)。