VMS Help
DECdts, utc_mkvmslocaltime
*Conan The Librarian
|
Converts a local binary OpenVMS format time to a binary
timestamp, using the host system's time differential factor.
Format
#include <utc.h>
int utc_mkvmslocaltime(*utc, *timadr)
const long *timadr;
utc_t *utc;
Input
*timadr
Binary OpenVMS format time expressing local time.
Output
*utc
Binary timestamp expressing the system's local time.
The Make VMS Local Time routine converts a binary OpenVMS format
time, representing the local time of the host system, to a binary
timestamp. The system's local time value is defined by the time
zone rule in sys$timezone_rule, which is created by the system
configuration process sys$manager:net$configure.com.
If the routine call is made during a seasonal time zone change
when the local time is indeterminate, an error is returned. For
example, if the time zone change occurs at the current local time
of 2:00 A.M. to a new local time of 1:00 A.M., and the routine is
called between 1:00 A.M. and 2:00 A.M., it cannot be determined
which TDF applies.
0 Indicates that the routine executed successfully.
-1 Indicates an invalid time argument, invalid results, or
invalid routine call during a time zone change.
The following example shows how to retrieve the current local
time of the system in the binary OpenVMS format, convert the
OpenVMS format time to a UTC-based binary timestamp (using the
system's TDF), and print an ASCII representation of the binary
timestamp.
5.1 - /*********
start example mkvmslocaltime
*********/
#include <utc.h>
main()
{
char outstring[UTC_MAX_STR_LEN];
struct utc utcTime;
int vmsTime[2];
SYS$GETTIM(vmsTime); /* read current time */
if (utc_mkvmslocaltime(&utcTime,vmsTime)) /* convert the local time */
exit(1); /* vmsTime to UTC using */
/* the system tdf. */
5.2 - /* convert to ISO ascii*/
utc_asclocaltime(outstring,UTC_MAX_STR_LEN,&utcTime);
5.3 - /* format and print */
printf("Current time=> %s\n",outstring);
}
5.4 - /*****
end example
*****/
Function: utc_vmslocaltime