If you are getting the MI TOD (time of day) value, you want something to convert it on the iSeries first. Take a look at the Qp0zCvtToTimeval API for converting it. This API converts the TOD to something called a timeval, which is a structure with 2 values, seconds and microseconds. There's another API (localtime, IIRC) for converting the seconds of a timeval to ymdhms, etc.

Here's some stuff from the MI introduction at V5R3 InfoCenter. I find it interesting that
0000000000008000 = 8 microseconds
but don't think that
0000000000009000 = 9 microseconds.

In fact, that is still 8 microseconds, because the "8" in hex represents bit 48 from the left (0-based) and is "1" in both cases. The next increment would be (I think)
0000000000010000 = 16 microseconds


Standard Time Format

The Standard Time Format is defined as a 64-bit (8-byte) unsigned binary value as follows:
Offset
Dec Hex Field Name                    Data Type and Length
0     0     Standard Time Format    UBin(8)
0     0         Time                              Bits 0-48
0     0         Uniqueness bits              Bits 49-63
8     8
--- End ---

The time field is a binary number which can be interpreted as a time value in units of 8 microseconds. A binary 1 in bit 48 is equal to 8 microseconds.

The uniqueness bits field may contain any combination of binary 1s and 0s. These bits do not provide additional granularity for a time value; they merely allow unique 64-bit values to be returned, such as when the value of the time-of-day (TOD) clock is materialized.

A number of MI instructions define fields to contain a binary value which may represent a time stamp or time interval, or may specify a wait time-out period. Unless explicitly stated otherwise, the format of the field is the Standard Time Format.

Examples of binary values as time intervals:

     A hex value of...  Represents...
     0000000000008000   8 microseconds
     00000000F4240000   1 second
     00000D693A400000   1 hour
     0008CD0E3A000000   1 week

Examples of binary values as time stamps:

     A hex value of...  Represents...
     0000000000000000   08/23/1928 12:03:06.314752
     4A2FEC4C82000000   01/01/1970 00:00:00.000000
     8000000000000000   01/01/2000 00:00:00.000000
     DFFFFFFFFFFF8000   07/07/2053 20:57:40.263928



At 08:54 AM 7/21/2005, you wrote:
Hi,
I am receiving TIMESTAMP value from the iSeries system as an unsigned 64 bit integer value. Is it possible to convert this timestamp into a readable format in windows machine? The iSeries timestamp value is an unsigned 64 bit integer value. All the time management routines which I can use on a windows machine deal with signed integer value. So the iSeries timestamp appears as a negative value(the MSB is 1 in the iSeries TIMESTAMP) to the routines like ctime64() or gmtime64(). Any clues?

P.Prasad


---------------------------------
How much free photo storage do you get? Store your friends n family photos for FREE with Yahoo! Photos.
 http://in.photos.yahoo.com
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.