This is largely derived from our existing Joda-Time support, with corresponding classes wherever possible. Issue: SPR-9641