tst wrote:
> This includes a bit of guessing, and I'd be happy if any of the experts could
> confirm/correct/clarify.<br><br>The importance of 01/01/1970 00:00:00 is that
> it is the t0 for the UTC standard, which is used by windows (if I'm not mistaken)
> and by the PC manufacturers in their internal clock (I think).
UTC itself is not really limited by any specific base time. It is mostly
a common nomination and coincidentially is similar to the old GMT,
although I believe account for leap seconds is different between the two
and it specifically excludes any adjustements for daylight saving time.
For the rest you are pretty close but not entirely. 01/01/1970 00:00:00
UTC is the time base of most ANSI C runtime implementations. ANSI C
suggests this date as an example but explicitedly refrains from
requiring any specific date for the time base.
The Windows 32bit API has a system time (FILETIME) which is based on
01/01/1601 00:00:00 UTC with a time resolution of 100ns.
> Anyway, I don't know how UTC represents dates earlier than 1970, but appearantly
> these VIs take their timezone from the system and are affected by it. I still find
> it a bit weird, because I'd expect LV to handle all time calculations internally by
> its own timestamp format.
This has something to do with modifications to the timezone handling in
or around LabVIEW 7.0. Before that LabVIEW always used the timezone
settings of the timezone as valid on the current moment to calculate
between local time format and its UTC second timestamp. This was ok for
current timestamps but did get wrong whenever you tried to look at
timestamps which were in a period which had not the same DST status.
Since LabVIEW 7.0 LabVIEW actually takes into account the real DST
status of the timestamp itself. Well sort of it actually switches on
00.00 of the day the DST starts and stops whereas this is most comonly
done between 2.00 and 3.00.
However not so for timestamps before 1970 and I think this was done on
purpose. Because older LabVIEW libraries used the trick with the 0
seconds (well really 86400 to account for timezones which have negative
offset) conversion to determine the actual timezone offset. If LabVIEW
7.0 would have changed the DST calculation offset behaviour for the
entire time range, proper calculation of the current timezone offset
would have been impossible as LabVIEW would always assume non-DST for
January 2 of 1904 in that case.
Rolf Kalbermatter
Rolf Kalbermatter
My Blog 
DEMO, Electronic and Mechanical Support department, room 36.LB00.390