Formatting DateTime
I have to admit, folks
at Microsoft have done a great job by taking care of DateTime formatting
problems. Now you can format a DateTime to any kind of string format you can
imagine.
The GetDateTimeFormats
method returns all possible DateTime formats for the current culture of a
computer. The code snippet in Listing 10 returns an array of strings listed all
possible formats.
Private Sub
GetAllDateTimeFormats()
Dim dob As DateTime = New DateTime(2002, 10, 22)
Dim dateFormats() As String = dob.GetDateTimeFormats()
For Each format As String In dateFormats
Console.WriteLine(format)
Next
End Sub
Listing 10
The GetDateTimeFormats
method also has an overloaded for that takes a format specifier as a
parameter and converts a DateTime to that format. It is very important
to understand the DateTime format specifiers to get the desired formats. Table
1 summarizes the formats and their codes.
| Code | Pattern | Format | Sample |
| "d" | Sort date | | |
| "D" | Long date | | |
| "f" | Full date time. Shorttime. | | |
| "F" | Full date time. Longtime. | | |
| "g" | Generate date time.Short time. | | |
| "G" | General date time.Long time. | | |
| "M", 'm" | Month/day. | | |
| "O", "o" | Round-trip date/time. | | |
| "R", "r" | RFC1123 | | |
| "s" | Sortable date time. | | |
| "t" | Sort time. | | |
| "T" | Long time. | | |
| "u" | Universal sortabledate time. | | |
| "U" | Universal full datetime. | | |
| "Y", "y" | Year month. | | |
Table 1
The code snippet in
Listing 11 uses some of the DateTime format specifiers.
Private Sub
FormatDateTime()
Dim dob As DateTime = New DateTime(2002, 10, 22)
' DateTime Formats: d, D, f, F, g, G, m, o, r, s, t, T, u,
U,
Console.WriteLine("----------------")
Console.WriteLine("d
Formats")
Console.WriteLine("----------------")
Dim dateFormats() As String = dob.GetDateTimeFormats("d"c)
For Each Format As String In dateFormats
Console.WriteLine(Format)
Next
Console.WriteLine("----------------")
Console.WriteLine("D
Formats")
Console.WriteLine("----------------")
For Each Format As String In dateFormats
Console.WriteLine(Format)
Next
Console.WriteLine("----------------")
Console.WriteLine("f
Formats")
Console.WriteLine("----------------")
dateFormats = dob.GetDateTimeFormats("f"c)
For Each Format As String In dateFormats
Console.WriteLine(Format)
Next
Console.WriteLine("----------------")
Console.WriteLine("F
Formats")
Console.WriteLine("----------------")
dateFormats = dob.GetDateTimeFormats("F"c)
For Each Format As String In dateFormats
Console.WriteLine(Format)
Next
End Sub
Listing 11
We can also format a
DateTime by passing the format specifier in the ToString() method of DateTime.
The code snippet in Listing 12 formats a DateTime using ToString() method. Console.WriteLine(dob.ToString("r"c));
Listing 12
The code snippet in
Listing 13 uses some of the DateTime format specifiers within the ToString()
method to format a DateTime.
Private Sub
FormatUsingToString()
Dim dob As DateTime = New DateTime(2002, 10, 22)
Console.WriteLine("d:
" + dob.ToString("d"))
Console.WriteLine("D:
" + dob.ToString("D"))
Console.WriteLine("f:
" + dob.ToString("f"))
Console.WriteLine("F:
" + dob.ToString("F"))
Console.WriteLine("g:
" + dob.ToString("g"))
Console.WriteLine("G:
" + dob.ToString("G"))
Console.WriteLine("m:
" + dob.ToString("m"))
Console.WriteLine("M:
" + dob.ToString("M"))
Console.WriteLine("o:
" + dob.ToString("o"))
Console.WriteLine("O:
" + dob.ToString("O"))
Console.WriteLine("r:
" + dob.ToString("r"))
Console.WriteLine("R: " + dob.ToString("R"))
Console.WriteLine("s:
" + dob.ToString("s"))
Console.WriteLine("t:
" + dob.ToString("t"))
Console.WriteLine("T:
" + dob.ToString("T"))
Console.WriteLine("u:
" + dob.ToString("u"))
Console.WriteLine("U:
" + dob.ToString("U"))
Console.WriteLine("y:
" + dob.ToString("y"))
Console.WriteLine("Y:
" + dob.ToString("Y"))
End Sub
Listing 13