The DateString function does not change supported Date formats in Visual Basic .NET or in Visual Basic 2005 (889833)



The information in this article applies to:

  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET (2003)
  • Microsoft Visual Basic .NET (2002)

SYMPTOMS

The DateString function does not change supported Date formats. The date string that is returned by the DateString function does not take into consideration Regional Options in Control Panel and that all dates that are returned from the call are in the MM-dd-yyyy format. This problem occurs in Microsoft Visual Basic .NET 2002, in Microsoft Visual Basic .NET 2003, and in Microsoft Visual Basic 2005.

CAUSE

This problem occurs because the DateString function is culture-invariant. Therefore, you cannot change the supported Date formats. This is true even if you change Regional Options in Control Panel.

The following Date formats are supported:
  • M-d-yyyy
  • M-d-y
  • M/d/yyyy
  • M/d/y

RESOLUTION

To resolve this problem, use the Format function. The following code example shows various uses of the Format function. The Format function can format values by using both string formats and user-defined formats.
Dim MyDateTime As Date = #1/27/2001 5:04:23 PM#
Dim MyStr As String
' The current system time is returned in the system-defined long time format.
MyStr = Format(Now(), "Long Time")
' The current system date is returned in the system-defined long date format.
MyStr = Format(Now(), "Long Date")
' The current system date is also returned in the system-defined long date 
' format by using the single letter code for the format.
MyStr = Format(Now(), "D")
' The value of MyDateTime is returned in user-defined date format and in user-defined time format.
MyStr = Format(MyDateTime, "h:m:s")   ' Returns "5:4:23"
MyStr = Format(MyDateTime, "hh:mm:ss tt")   ' Returns "05:04:23 PM"
MyStr = Format(MyDateTime, "dddd, MMM d yyyy")   ' Returns "Saturday,
   ' Jan 27 2001"
MyStr = Format(MyDateTime, "HH:mm:ss")   ' Returns "17:04:23"
MyStr = Format(23)   ' Returns "23"
' User-defined numeric formats follow.
MyStr = Format(5459.4, "##,##0.00")   ' Returns "5,459.40"
MyStr = Format(334.9, "###0.00")   ' Returns "334.90"
MyStr = Format(5, "0.00%")   ' Returns "500.00%"

STATUS

This behavior is by design.

Modification Type:MinorLast Reviewed:10/3/2006
Keywords:kbvs2005swept kbvs2005applies kbtshoot kbprb KB889833 kbAudDeveloper kbAudEndUser