digitalmars.D.bugs - Local time(Windows2000)
- k2 (20/20) Sep 03 2004 The time zone of my area is +09:00.
The time zone of my area is +09:00.
However, it will be get to 0.
d_time t = getUTCtime();
assert(UTCtoLocalTime(t) != t); // failuer
The return value of GetTimeZoneInformation is TIME_ZONE_ID_STANDARD, In the case
of Windows9x.
But, in the case of WindowsNT/2000, it is TIME_ZONE_ID_UNKNOWN.
However, std.date.getLocalTZA is not taking TIME_ZONE_ID_UNKNOWN into
consideration.
So, in Windows2000, a time zone cannot get correctly.
Probably, should change std.date.getLocalTZA as follows?:
r = GetTimeZoneInformation(&tzi);
if(r != TIME_ZONE_ID_INVALID){
int bias = tzi.Bias;
if(ret == TIME_ZONE_ID_STANDARD || ret == TIME_ZONE_ID_DAYLIGHT)
bias += tzi.StandardBias;
t = -bias * cast(d_time)(60 * TicksPerSecond);
}else{
t = 0;
}
Sep 03 2004








k2 <k2_member pathlink.com>