C#将字符串格式化为日期

时间:2010-08-19 11:09:12

标签: c# datetime string-formatting

我有一个DetailsView,其TextBox绑定到DateTime列。列的值以“dd / mm / yyyy hh:mm:ss”格式显示。我需要它以“yyyy / mm / dd”格式显示。虽然我有最好的方法可能是格式化DataBound事件中的字符串。问题是,我似乎无法找到将字符串格式化为日期的方法。 String.Format不会这样做。如果我将字符串作为DateTime,那么我可以使用DateTime.Format方法。我可以通过解析字符串的各种元素来创建一个日期时间变量,但我不禁想到必须有一个更简单的方法吗?

由于

罗布。

5 个答案:

答案 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,那么你所做的只是设置掩码(格式)。

Read More about MaskedTextBox