Joda Time is a library that improves the functionality and usability of dates and times in the Java environment. The built-in Java classes are hard to use, missing common functionality, and do the wrong thing in many cases. Thus was born Joda Time. It has been so successful that it was made the basis of JSR-310, a proposal for adding the Joda Time functionality to the base Java libraries. This post is not about Joda Time. At least not directly.
In November of last year (2009) I joined with Jon Skeet and others in starting the Noda Time Open Source project. The goal of this project is to port the Joda Time library from Java to .NET. The built-in classes in the .NET runtime are woefully incomplete, inadequate, and inelegant. The original plan was to do a straight port with as little changed as possible to make it work with .NET but as time went on (about 2 days) we realized that the Joda Time way was just too Java-centric and would look too out-of-place in a .NET system. So after much wailing and gnashing of teeth we decided to diverge.
As my first set of posts in this blog’s reboot I thought it would be fun to cover this process and along the way maybe talk a little about the issues that came up—both in interfacing with .NET and with time itself.