In Win32 often you'll find time stored in 100-nanosecond intervals since January 1, 1600 UTC. It is stored in a 64-bit value which uses 2 32 bit parts to store the time. The following is a function that returns the time in the typical format the python time libraries use (seconds since 1970).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
import time def conv_time(l,h): #converts 64-bit integer specifying the number of 100-nanosecond #intervals which have passed since January 1, 1601. #This 64-bit value is split into the #two 32 bits stored in the structure. d=116444736000000000L #difference between 1601 and 1970 #we divide by 10million to convert to seconds return (((long(h)<< 32) + long(l))-d)/10000000 For example, active directory in windows uses this time to note when a password was last set. If you have a com object representing a user in active directory: user='LDAP://cn=fred,OU=office1,DC=company,DC=com' user_obj=win32com.client.GetObject(user) To get the time the password was last set you would do the following: print conv_time(user.pwdLastSet.lowpart,user.pwdLastSet.highpart)
Microsoft's method of storing time will let them record dates for thousands of years. Unfortunately, it is not a method python libraries are familiar with.
You can use this function with things as diverse as times in active directory and dates found in cookies created by Microsoft's Internet Explorer.