# Tuesday, December 28, 2004
« Tip of the Day: Determining which contro... | Main | Finding all tables where a field exists ... »

Here's another simple tip, but it does encapsulate some of the functionality needed to format a DateTime (or a string) to a particular string format. First, from the documentation, here's some examples of the DateTime formatting:

Column 1: Format String, Column 2: The format of the date
    ' d :08/17/2000
    ' D :Thursday, August 17, 2000
    ' f :Thursday, August 17, 2000 16:32
    ' F :Thursday, August 17, 2000 16:32:32
    ' g :08/17/2000 16:32
    ' G :08/17/2000 16:32:32
    ' m :August 17
    ' r :Thu, 17 Aug 2000 23:32:32 GMT
    ' s :2000-08-17T16:32:32
    ' t :16:32
    ' T :16:32:32
    ' u :2000-08-17 23:32:32Z
    ' U :Thursday, August 17, 2000 23:32:32
    ' y :August, 2000
    ' dddd, MMMM dd yyyy :Thursday, August 17 2000
    ' ddd, MMM d "'"yy :Thu, Aug 17 '00
    ' dddd, MMMM dd :Thursday, August 17
    ' M/yy :8/00
    ' dd-MM-yy :17-08-00

First, we'll need a function to verify the string we have is a valid date.

        public static bool ValidDate(string checkDate)
        {
            try
            {
                DateTime dtTemp;
                dtTemp = DateTime.Parse(checkDate);
                return true;
            }
            catch
            {
                return false;
            }
        }

The ValidDate function takes a string, and returns true if the value is a valid date, or false if it isn't.

Next, here's the function for formatting the date:

public static string FormatDateTimeCustom(string valDate, string formatString)
{
    if (ValidDate(valDate))
        return Convert.ToDateTime(valDate).ToString(formatString);
    else
        return valDate;
}

valDate = the string to format

formatString = the format style as listed earlier

That's it for today!