You're correct in assuming that (current-time-string) gives the
 correct result
 always. However, i've never seen this behaviour with the native
 windows port of
 XEmacs, only with the cygwin version.... so why does only the
 windows version
 do-the-right-thing? 
This is a known problem with cygwin which Phil Aston has provided a fix for
but which the cygwin maintainers refuse to apply (or at least that was the
status quo a few months ago). The problem is due to some inappropriate uses
of win32 function calls in the cygwin dll.
andy