VB.Net - Date & Time

Most of the softwares you write need implementing some form of date functions returning current date and time. Dates are so much part of everyday life that it becomes easy to work with them without thinking. VB.Net also provides powerful tools for date arithmetic that makes manipulating dates easy.
The Date data type contains date values, time values, or date and time values. The default value of Date is 0:00:00 (midnight) on January 1, 0001. The equivalent .NET data type is System.DateTime.
The DateTime structure represents an instant in time, typically expressed as a date and time of day
'Declaration
<SerializableAttribute> _
Public Structure DateTime _
   Implements IComparable, IFormattable, IConvertible, ISerializable,  
   IComparable(Of DateTime), IEquatable(Of DateTime)

You can also get the current date and time from the DateAndTime class.
The DateAndTime module contains the procedures and properties used in date and time operations.
'Declaration
<StandardModuleAttribute> _
Public NotInheritable Class DateAndTime

Note:
Both the DateTime structure and the DateAndTime module contain properties like Now and Today, so often beginners find it confusing. The DateAndTime class belongs to the Microsoft.VisualBasic namespace and the DateTime structure belongs to the System namespace. Therefore, using the later would help you in porting your code to another .Net language like C#. However, the DateAndTime class/module contains all the legacy date functions available in Visual Basic.
The following table lists some of the commonly used properties of the DateTime Structure −
The following table lists some of the commonly used methods of the DateTime structure −
Public Function Add (value As TimeSpan) As DateTime
Returns a new DateTime that adds the value of the specified TimeSpan to the value of this instance.
Public Function AddDays ( value As Double) As DateTime
Returns a new DateTime that adds the specified number of days to the value of this instance.
Public Function AddHours (value As Double) As DateTime
Returns a new DateTime that adds the specified number of hours to the value of this instance.
Public Function AddMinutes (value As Double) As DateTime
Returns a new DateTime that adds the specified number of minutes to the value of this instance.
Public Function AddMonths (months As Integer) As DateTime
Returns a new DateTime that adds the specified number of months to the value of this instance.
Public Function AddSeconds (value As Double) As DateTime
Returns a new DateTime that adds the specified number of seconds to the value of this instance.
Public Function AddYears (value As Integer ) As DateTime
Returns a new DateTime that adds the specified number of years to the value of this instance.
Public Shared Function Compare (t1 As DateTime,t2 As DateTime) As Integer
Compares two instances of DateTime and returns an integer that indicates whether the first instance is earlier than, the same as, or later than the second instance.
Public Function CompareTo (value As DateTime) As Integer
Compares the value of this instance to a specified DateTime value and returns an integer that indicates whether this instance is earlier than, the same as, or later than the specified DateTime value.
Public Function Equals (value As DateTime) As Boolean
Returns a value indicating whether the value of this instance is equal to the value of the specified DateTime instance.
Public Shared Function Equals (t1 As DateTime, t2 As DateTime) As Boolean
Returns a value indicating whether two DateTime instances have the same date and time value.
Public Overrides Function ToString As String
Converts the value of the current DateTime object to its equivalent string representation.
The above list of methods is not exhaustive, please visit Microsoft documentation for the complete list of methods and properties of the DateTime structure.
You can create a DateTime object in one of the following ways −
By calling a DateTime constructor from any of the overloaded DateTime constructors.
By calling a DateTime constructor from any of the overloaded DateTime constructors.
By assigning the DateTime object a date and time value returned by a property or method.
By assigning the DateTime object a date and time value returned by a property or method.
By parsing the string representation of a date and time value.
By parsing the string representation of a date and time value.
By calling the DateTime structure's implicit default constructor.
By calling the DateTime structure's implicit default constructor.
The following example demonstrates this −
Module Module1
   Sub Main()
      'DateTime constructor: parameters year, month, day, hour, min, sec
      Dim date1 As New Date(2012, 12, 16, 12, 0, 0)
      'initializes a new DateTime value
      Dim date2 As Date = #12/16/2012 12:00:52 AM#
      'using properties
      Dim date3 As Date = Date.Now
      Dim date4 As Date = Date.UtcNow
      Dim date5 As Date = Date.Today
      
      Console.WriteLine(date1)
      Console.WriteLine(date2)
      Console.WriteLine(date3)
      Console.WriteLine(date4)
      Console.WriteLine(date5)
      Console.ReadKey()
   End Sub
End Module
When the above code was compiled and executed, it produces the following result −
12/16/2012 12:00:00 PM
12/16/2012 12:00:52 PM
12/12/2012 10:22:50 PM
12/12/2012 12:00:00 PM

The following programs demonstrate how to get the current date and time in VB.Net −
Current Time −
Module dateNtime
   Sub Main()
      Console.Write("Current Time: ")
      Console.WriteLine(Now.ToLongTimeString)
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Current Time: 11 :05 :32 AM

Current Date −
Module dateNtime
   Sub Main()
      Console.WriteLine("Current Date: ")
      Dim dt As Date = Today
      Console.WriteLine("Today is: {0}", dt)
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
Today is: 12/11/2012 12:00:00 AM

A Date literal should be enclosed within hash signs (# #), and specified in the format M/d/yyyy, for example #12/16/2012#. Otherwise, your code may change depending on the locale in which your application is running.
For example, you specified Date literal of #2/6/2012# for the date February 6, 2012. It is alright for the locale that uses mm/dd/yyyy format. However, in a locale that uses dd/mm/yyyy format, your literal would compile to June 2, 2012. If a locale uses another format say, yyyy/mm/dd, the literal would be invalid and cause a compiler error.
To convert a Date literal to the format of your locale or to a custom format, use the Format function of String class, specifying either a predefined or user-defined date format.
The following example demonstrates this.
Module dateNtime
   Sub Main()
      Console.WriteLine("India Wins Freedom: ")
      Dim independenceDay As New Date(1947, 8, 15, 0, 0, 0)
      ' Use format specifiers to control the date display.
      Console.WriteLine(" Format 'd:' " & independenceDay.ToString("d"))
      Console.WriteLine(" Format 'D:' " & independenceDay.ToString("D"))
      Console.WriteLine(" Format 't:' " & independenceDay.ToString("t"))
      Console.WriteLine(" Format 'T:' " & independenceDay.ToString("T"))
      Console.WriteLine(" Format 'f:' " & independenceDay.ToString("f"))
      Console.WriteLine(" Format 'F:' " & independenceDay.ToString("F"))
      Console.WriteLine(" Format 'g:' " & independenceDay.ToString("g"))
      Console.WriteLine(" Format 'G:' " & independenceDay.ToString("G"))
      Console.WriteLine(" Format 'M:' " & independenceDay.ToString("M"))
      Console.WriteLine(" Format 'R:' " & independenceDay.ToString("R"))
      Console.WriteLine(" Format 'y:' " & independenceDay.ToString("y"))
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
India Wins Freedom:
Format 'd:' 8/15/1947
Format 'D:' Friday, August 15, 1947
Format 't:' 12:00 AM
Format 'T:' 12:00:00 AM
Format 'f:' Friday, August 15, 1947 12:00 AM
Format 'F:' Friday, August 15, 1947 12:00:00 AM
Format 'g:' 8/15/1947 12:00 AM
Format 'G:' 8/15/1947 12:00:00 AM
Format 'M:' 8/15/1947 August 15
Format 'R:' Fri, 15 August 1947 00:00:00 GMT
Format 'y:' August, 1947

The following table identifies the predefined date and time format names. These may be used by name as the style argument for the Format function −
For other formats like user-defined formats, please consult Microsoft Documentation.
The following table lists some of the commonly used properties of the DateAndTime Class −
Date
Returns or sets a String value representing the current date according to your system.
Now
Returns a Date value containing the current date and time according to your system.
TimeOfDay
Returns or sets a Date value containing the current time of day according to your system.
Timer
Returns a Double value representing the number of seconds elapsed since midnight.
TimeString
Returns or sets a String value representing the current time of day according to your system.
Today
Gets the current date.
The following table lists some of the commonly used methods of the DateAndTime class −
Public Shared Function DateAdd (Interval As DateInterval, Number As Double, DateValue As DateTime) As DateTime
Returns a Date value containing a date and time value to which a specified time interval has been added.
Public Shared Function DateAdd (Interval As String,Number As Double,DateValue As Object ) As DateTime
Returns a Date value containing a date and time value to which a specified time interval has been added.
Public Shared Function DateDiff (Interval As DateInterval, Date1 As DateTime, Date2 As DateTime, DayOfWeek As FirstDayOfWeek, WeekOfYear As FirstWeekOfYear ) As Long
Returns a Long value specifying the number of time intervals between two Date values.
Public Shared Function DatePart (Interval As DateInterval, DateValue As DateTime, FirstDayOfWeekValue As FirstDayOfWeek, FirstWeekOfYearValue As FirstWeekOfYear ) As Integer
Returns an Integer value containing the specified component of a given Date value.
Public Shared Function Day (DateValue As DateTime) As Integer
Returns an Integer value from 1 through 31 representing the day of the month.
Public Shared Function Hour (TimeValue As DateTime) As Integer
Returns an Integer value from 0 through 23 representing the hour of the day.
Public Shared Function Minute (TimeValue As DateTime) As Integer
Returns an Integer value from 0 through 59 representing the minute of the hour.
Public Shared Function Month (DateValue As DateTime) As Integer
Returns an Integer value from 1 through 12 representing the month of the year.
Public Shared Function MonthName (Month As Integer, Abbreviate As Boolean) As String
Returns a String value containing the name of the specified month.
Public Shared Function Second (TimeValue As DateTime) As Integer
Returns an Integer value from 0 through 59 representing the second of the minute.
Public Overridable Function ToString As String
Returns a string that represents the current object.
Public Shared Function Weekday (DateValue As DateTime, DayOfWeek As FirstDayOfWeek) As Integer
Returns an Integer value containing a number representing the day of the week.
Public Shared Function WeekdayName (Weekday As Integer, Abbreviate As Boolean, FirstDayOfWeekValue As FirstDayOfWeek) As String
Returns a String value containing the name of the specified weekday.
Public Shared Function Year (DateValue As DateTime) As Integer
Returns an Integer value from 1 through 9999 representing the year.
The above list is not exhaustive. For complete list of properties and methods of the DateAndTime class, please consult Microsoft Documentation.
The following program demonstrates some of these and methods −
Module Module1
   Sub Main()
      Dim birthday As Date
      Dim bday As Integer
      Dim month As Integer
      Dim monthname As String
      ' Assign a date using standard short format.
      birthday = #7/27/1998#
      bday = Microsoft.VisualBasic.DateAndTime.Day(birthday)
      month = Microsoft.VisualBasic.DateAndTime.Month(birthday)
      monthname = Microsoft.VisualBasic.DateAndTime.MonthName(month)
      
      Console.WriteLine(birthday)
      Console.WriteLine(bday)
      Console.WriteLine(month)
      Console.WriteLine(monthname)
      Console.ReadKey()
   End Sub
End Module
When the above code is compiled and executed, it produces the following result −
7/27/1998 12:00:00 AM
27
7
July


    63 Lectures 
     4 hours 

 Frahaan Hussain

    103 Lectures 
     12 hours 

 Arnold Higuit

    60 Lectures 
     9.5 hours 

 Arnold Higuit

    97 Lectures 
     9 hours 

 Arnold Higuit
 Print
 Add Notes
 Bookmark this page