TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

VB.NET DateTime Format Functions

This VB.NET tutorial uses DateTime format patterns. It demonstrates the ToString method.

DateTime format. We format dates and times with a string pattern.

Conceptually this is simple. In practice, there are details we must account for if we want a functional program.

Formatting DateTime as a string is straightforward. Often we use format patterns like "YY." But methods like ToShortDateString are also useful.

Example. First we get the current time through DateTime.Now. When you execute these code examples, the current DateTime will be different on your computer.

Here: A format string beginning with MMM (for the month) is used. Look at how the pattern matches up to the output of the program.

Based on:

.NET 4

VB.NET program that uses format string with DateTime

Module Module1
    Sub Main()
	' Use current time.
	' ... Use a format.
	' ... Write to console.
	Dim time As DateTime = DateTime.Now
	Dim format As String = "MMM ddd d HH:mm yyyy"
	Console.WriteLine(time.ToString(format))
    End Sub
End Module

Output

May Tue 18 16:46 2014

Description of format

MMM     Three-letter month.
ddd     Three-letter day of the week.
d       Day of the month.
HH      Two-digit hours on 24-hour scale.
mm      Two-digit minutes.
yyyy    Four-digit year.

Pattern. It is possible to change the pattern used in the format string in many ways. To explore this, we try to shorten the output by changing the MMM to a single M.

Note: The pattern matches up to the output of the program. The description of the formatting string is shown in tabular format.

VB.NET program that uses different format string

Module Module1
    Sub Main()
	' Use current time.
	' ... Use a format.
	' ... Write to console.
	Dim time As DateTime = DateTime.Now
	Dim format As String = "M d HH:mm yy"
	Console.WriteLine(time.ToString(format))
    End Sub
End Module

Output

5 18 16:46 10

Description of format

M       One-digit month number.
d       One-digit day of the month.
HH      Two-digit hours on 24-hour scale.
mm      Two-digit minutes.
yy      Two-digit year.

One-character formats. Here we use single-character format strings. For this feature, you pass a one-character string to the ToString function.

Note: This encodes a specific formatting style. Sometimes it might be worth memorizing the ones you like the most.

However: In other cases you can simply look up the table on the Internet or MSDN.

VB.NET program that uses one-character formats

Module Module1
    Sub Main()
	' Acquire current time and then try format strings.
	Dim now As DateTime = DateTime.Now
	Console.WriteLine(now.ToString("d"))
	Console.WriteLine(now.ToString("D"))
	Console.WriteLine(now.ToString("f"))
	Console.WriteLine(now.ToString("F"))
	Console.WriteLine(now.ToString("g"))
	Console.WriteLine(now.ToString("G"))
	Console.WriteLine(now.ToString("m"))
	Console.WriteLine(now.ToString("M"))
	Console.WriteLine(now.ToString("o"))
	Console.WriteLine(now.ToString("O"))
	Console.WriteLine(now.ToString("s"))
	Console.WriteLine(now.ToString("t"))
	Console.WriteLine(now.ToString("T"))
	Console.WriteLine(now.ToString("u"))
	Console.WriteLine(now.ToString("U"))
	Console.WriteLine(now.ToString("y"))
	Console.WriteLine(now.ToString("Y"))
    End Sub
End Module

Output

5/18/2010
Tuesday, May 18, 2010
Tuesday, May 18, 2010 4:47 PM
Tuesday, May 18, 2010 4:47:55 PM
5/18/2010 4:47 PM
5/18/2010 4:47:55 PM
May 18
May 18
2010-05-18T16:47:55.9620000-06:00
2010-05-18T16:47:55.9620000-06:00
2010-05-18T16:47:55
4:47 PM
4:47:55 PM
2010-05-18 16:47:55Z
Tuesday, May 18, 2010 10:47:55 PM
May, 2010
May, 2010

Helper functions. These functions, available on DateTime, allow us to format strings. For rapid application development, these are ideal because they are easy to remember and guess.

Note: The methods with the word Long in them produce considerably more verbose output.

VB.NET program that uses DateTime string functions

Module Module1
    Sub Main()
	' Use string helper functions.
	Dim now As DateTime = DateTime.Now
	Console.WriteLine(now.ToLongDateString())
	Console.WriteLine(now.ToLongTimeString())
	Console.WriteLine(now.ToShortDateString())
	Console.WriteLine(now.ToShortTimeString())
	Console.WriteLine(now.ToString())
    End Sub
End Module

Output

Tuesday, May 18, 2010
4:49:57 PM
5/18/2010
4:49 PM
5/18/2010 4:49:57 PM

Short day strings. The .NET Framework gives us the ability to print the representation of a day in short form. The three-letter form returns the day name and truncates it.

Here: In this example, we use a loop construct that iterates through seven days and prints out the short form string for each of them.

For Loops

VB.NET program that prints short day strings

Module Module1
    Sub Main()
	' Current time.
	Dim now As DateTime = DateTime.Now

	' Print out all the days.
	For index As Integer = 0 To 6
	    Console.WriteLine(now.ToString("ddd"))
	    now = now.AddDays(1)
	Next
    End Sub
End Module

Output

Tue
Wed
Thu
Fri
Sat
Sun
Mon

Long day strings. You can also print out the long day strings using the format string dddd. For more textual output, the longer day string might be preferred.

Here: In this example, we loop over seven consecutive days and print out the long day strings.

VB.NET program that prints long day strings

Module Module1
    Sub Main()
	Dim now As DateTime = DateTime.Now
	For index As Integer = 0 To 6
	    Console.WriteLine(now.ToString("dddd"))
	    now = now.AddDays(1)
	Next
    End Sub
End Module

Output

Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
Monday

AM, PM. When you are using a 12-hour based time system, you will typically want to display AM or PM to indicate whether it is morning or evening.

Next: This example prints out AM and PM for two times that are twelve hours apart.

Question: Are you a morning person, or a night person? This program will help you figure this out.

VB.NET that prints AM and PM

Module Module1
    Sub Main()
	Dim now As DateTime = DateTime.Now
	For index As Integer = 0 To 1
	    Console.WriteLine(now.ToString("tt "))
	    now = now.AddHours(12)
	Next
    End Sub
End Module

Output

PM
AM

Year. The year part of the format string is also important. Typically, you will want a two or four digit year, but a one-digit year is also possible with a single y.

Here: Let's look at some output in an example program that tests yy and yyyy. We see two-digit and four-digit years.

VB.NET that prints year strings

Module Module1
    Sub Main()
	' Use the best y patterns.
	Dim now As DateTime = DateTime.Now
	Console.WriteLine(now.ToString("yy"))
	Console.WriteLine(now.ToString("yyyy"))
    End Sub
End Module

Output

10
2010

Format characters. You can use a variety of format characters on the DateTime type. For a more complete description, please view the article written for the C# language.

C# Format

Note: The formatting characters used in both languages are identical. The surrounding code syntax is the only difference.

A summary. This article demonstrated the correct use of format strings on the DateTime type. DateTime has many convenience functions, different format character styles and display options.

DateTime requires no custom code on our part. This makes programs easier to maintain and read. The DateTime formatting mechanism can handle most common cases.


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf