date

operator

Return type:
String
Returns:
formatted date string.
Syntax
date string-expression


Purpose

date returns the current date and time.

The date operator must be followed by a string expression that can contain ordinary characters, format items, and date format items. Ordinary characters are passed through unchanged, and the format items are replaced with the appropriate values.

For example, the following process rule will output the current date in a YY/MM/DD format, and it will output the time the program was compiled in an HH:MM:SS format:

  process
     output date "=Y/=M/=D" || "%n"
     output compiled-date "=h:=m:=s" || "%n"

The equals sign (=) is the first character in a date format item, akin to the percent sign (%) that is the first character in a regular format item. The slash and colon characters that appear in this example are regular characters, which pass through unchanged to the appropriate variable.

Format items for dates and compiled dates

date and compiled-date format items begin with an = character and have the following meanings:

  • ==, two equals characters in a row represent the equals character itself,
  • =a, a lowercase letter indicating morning or afternoon/evening (a for the first 12 hours of the day, p for the second 12 hours of the day),
  • =A, an uppercase letter indicating morning or afternoon/evening (A for the first 12 hours of the day, P for the second 12 hours of the day),
  • =n, the English name of the month with the first letter capitalized and all the others not (for example, December),
  • =t, the offset in hours and minutes from Greenwich Mean Time (for example, date "=t" will produce the string -0500 in the Eastern Standard Time zone in North America),
  • =W, the English name of the day of the week with the first letter capitalized and all the others not (for example, Tuesday),
  • = x? H, the hour of the day in 24-hour form,
  • = x? h, the hour of the day in 12-hour form,
  • = x? m, the minute of the hour,
  • = x? s, the second of the minute (without a fraction),
  • = x? S, the second of the minute (with a fraction, when available from the system on which the program is running),
  • = x? Y, the year,
  • = x? M, the number of the month (January corresponds to 1 while December corresponds to 12), and
  • = x? D, the number of the day of the month.

Specifying the x modifier, as shown in the above list, causes the OmniMark program to return as few or as many digits as necessary to provide accurate and complete information. If you leave the x qualifier out, everything will be presented with two digits. For example, the date February 29, 1996 would be represented as follows:

  • =M/=D/=Y will produce the date 02/29/96, whereas
  • =xM/=xD/=xY will produce the date 2/29/1996.

Without the x, single-digit values are zero padded, two-digit values appear as is, and a four-digit year appears in a two-digit field, so its leading two digits are truncated. Use =xY, which will give you the full year number, to avoid Y2K-like problems in cases where the date is later be used by other computer programs.