Developer Guide and Reference

ID 767251
Date 10/31/2024
Public
Document Table of Contents

NLSFormatDate

NLS Function: Returns a correctly formatted string containing the date for the current locale. This routine is only available for Windows.

Module

USE IFNLS

result = NLSFormatDate (outstr [, intime] [, flags])

outstr

(Output) Character*(*). Is a string containing the correctly formatted date for the current locale. If outstr is longer than the formatted date, it is blank-padded.

intime

(Input; optional) INTEGER(4). If specified, the date to be formatted for the current locale. It must be an integer date such as the packed time created with PACKTIMEQQ. If you omit intime, the current system date is formatted and returned in outstr.

flags

(Input; optional) INTEGER(4). If specified, modifies the date conversion. If you omit flags, the flag NLS$Normal is used. Available values (defined in IFNLS.F90) are:

  • NLS$Normal - No special formatting

  • NLS$NoUserOverride - Do not use user overrides

  • NLS$UseAltCalendar - Use the locale's alternate calendar

  • NLS$LongDate - Use local long date format

  • NLS$ShortDate - Use local short date format

Results

The result type is INTEGER(4). The result is the number of characters written to outstr (bytes are counted, not multibyte characters).

If an error occurs, the result is one of the following negative values:

  • NLS$ErrorInsufficentBuffer - outstr buffer is too small

  • NLS$ErrorInvalidFlags - flags has an illegal value

  • NLS$ErrorInvalidInput - intime has an illegal value

Example

 USE IFNLS
 INTEGER(4) i
 CHARACTER(40) str
 i = NLSFORMATDATE(str, FLAGS=NLS$NORMAL)           ! 8/1/10
 i = NLSFORMATDATE(str, FLAGS=NLS$USEALTCALENDAR)   ! 8/1/10
 i = NLSFORMATDATE(str, FLAGS=NLS$LONGDATE)         ! Sunday, August 1, 2010
 i = NLSFORMATDATE(str, FLAGS=NLS$SHORTDATE)        ! 8/1/10
 END