Registrations are now open. Join us today!
There is still a lot of work to do on the wiki yet! More information about editing can be found here.
Already have an account?

Microsoft KB Archive/102045

From BetaArchive Wiki
Knowledge Base

DOC: FORMAT$ Dates mm/dd/yy Gives MM-DD-YY in VB for MS- DOS

Article ID: 102045

Article Last Modified on 8/16/2005


  • Microsoft Visual Basic for MS-DOS
  • Microsoft Visual Basic 2.0 Standard Edition
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Visual Basic 2.0 Professional Edition
  • Microsoft Visual Basic 3.0 Professional Edition

This article was previously published under Q102045


The FORMAT$ function uses the date separator as defined by the current country setting in MS-DOS. In the USA, that means it uses the dash or hyphen character (-) when printing dates instead of the forward slash '/'.


When printing date information, the FORMAT$ function replaces the slash '/' with the current country setting for the date separator. In the USA, the default MS-DOS date separator is the dash (-). Here's an example:

   PRINT FORMAT$(NOW, "mm/dd/yy")     ' prints 06-23-93

You can force FORMAT$ to use the slash (/) by preceding it with a backslash (\). Here's an example:

   PRINT FORMAT$(NOW, "mm\/dd\/yy")   ' prints 06/23/93

The Visual Basic for MS-DOS Help file topic 'Sample Date and Time Formats' shows the following example, which is incorrect for the USA:

   FORMAT$ Expression   Display         ' Will Display
   ------------------   -------------   ' -------------
   m/d/yy               12/7/58         ' 12-7-58
   m/d/yy h:mm          12/7/58 20:50   ' 12-7-58 20:50

To display the expected date format, use the backslash (\) in conjunction with the forward slash (/). The backslash is an operator that displays the next character in a format string.

Additional query words: Vbmsdos kbVBp100

Keywords: kbdocfix KB102045