[ANN] Ystok-Local-Time 1.1 - Implementation of Erik Naggum's LOCAL-TIME
Hello lispworkers,
For Erik Naggum's memorial, I decided to put my implementation
of his LOCAL-TIME concepts into public domain.
Ystok-Local-Time is a Common Lisp library for representing and handling
time zones, dates, and timestamps. This package partially supports
ISO 8601 format and provides localized read and print of date and time.
The idea was originally based on the LOCAL-TIME concept proposed in
"The Long, Painful History of Time" by Erik Naggum (1965-2009)
<http://naggum.no/lugm-time.html>.
Ystok-Local-Time was also inspired by the Local-Time package by
onShore, Inc. available from http://alpha.onshore-devel.com/lisp-software/.
But Erik had criticized their open source implementation heavily.
For example, bignum-based operations were defeating the original
efficiency purpose of the LOCAL-TIME.
Taking the critique into account and after realizing drawbacks,
the fundamentals were redesigned in Ystok-Local-Time and code was
rewritten considerably.
The main feature is the following date/time type triplet:
- date corresponds to the DATE data type in SQL (ISO/IEC 9075:1999,2003).
- local-time corresponds to TIMESTAMP WITHOUT TIME ZONE.
- utc-time corresponds to SQL TIMESTAMP WITH TIME ZONE and contains
an explicit timezone offset.
The library was developed and tested on LispWorks for Windows 4.3, 4.4, 5.0.
The author has not tried to run the code on any *nix himself, though
unix-specific code from onShore is preserved "as is", see unix.lisp.
The latest version is at http://lisp.ystok.ru/ylocal-time/
Any customization targeted at other platforms and Lisp implementations
is welcome. Bug reports and suggestions are welcome.
--
Sincerely,
Dmitriy Ivanov
lisp.ystok.ru