Small. Fast. Reliable.
Choose any three.
*** 173,179 ****
  am aware. --drh On windows localtime() is thread-safe if the MT C runtime is used. The MT runtime uses thread-local storage for the static variables, the kind functions use.--gr _[What about using localtime_r, and on systems where it
  is unavailable defining it as sqliteOsEnterMutext() ; locatime() ; sqliteOsLeaveMutex()
  so that non-windows systems get the maximum advantage, with almost zero
! code impact?]_ -- AdamBerger
  
  Date computations do not give correct results for dates before Julian
  day number 0 (-4713-11-24 12:00:00).
--- 173,179 ----
  am aware. --drh On windows localtime() is thread-safe if the MT C runtime is used. The MT runtime uses thread-local storage for the static variables, the kind functions use.--gr _[What about using localtime_r, and on systems where it
  is unavailable defining it as sqliteOsEnterMutext() ; locatime() ; sqliteOsLeaveMutex()
  so that non-windows systems get the maximum advantage, with almost zero
! code impact?]_ The autoconfigury and patch for localtime_r is here: http://www.sqlite.org/cvstrac/tktview?tn=1906 . I'm curious why this obvious fix is not applied. gmtime() also suffers from this same threadsafety problem.
  
  Date computations do not give correct results for dates before Julian
  day number 0 (-4713-11-24 12:00:00).