Skip to main content


Converts date/time between internal and external formats.




datetime The date and time to be converted. An external date/time is represented as a string, such as “10–22–1980 12:35:56”. An internal date/time is represented by the Caché $HOROLOG ($H) date/time format: two five-digit integer values separated by a comma.
vbToInternal This keyword specifies converting an external date/time to internal ($H) format.
vbToExternal This keyword specifies converting an internal date/time ($H format) to external date and time format.


The DateTimeConvert function returns an external date/time in the following format:

mm/dd/yyyy hh:mm:ss

Leading zeros are displayed. The year is displayed as four digits.

The DateTimeConvert function returns an internal date/time in the following format:


Where “ddddd” is the date count (number of days since 12/31/1840), “sssss” is the time count (number of elapsed seconds in the specified day), and “ff” is optional fractional seconds. Fractional seconds are preserved in converting from external to internal format; fractional seconds are truncated when converting from internal to external format. For further details, see $HOROLOG in the Caché ObjectScript Reference.

An omitted year value defaults to 2000; the two-digit year defaults are 2000 through 2029 (for 00 through 29) and 1930 through 1999 (for 30 through 99).

An omitted time value defaults to 00:00:00.


In the following example the DateTimeConvert function returns a date/time in internal format.

Dim InDateTime
InDateTime = DateTimeConvert("Nov 11 1953 12:35:00",vbToInternal)
Println InDateTime

The following example takes an external date/time value with fractional seconds, converts it to an internal format ($HOROLOG) value, then converts this internal value back to an external format date and time.

Dim GetDate,InDate, ExDate
GetDate = "1-12-1953 11:45:23.99"
Println GetDate
InDate = DateTimeConvert(GetDate,vbToInternal)
Println InDate
ExDate = DateTimeConvert(InDate,vbToExternal)
Println ExDate

The values printed are as follows:

1-12-1953 11:45:23.99
01/12/1953 11:45:23

See Also

FeedbackOpens in a new tab