Date handling look simple but easy to fail in trap. Even worst is this is easy to have bad data which hard to fix. Here is an example - http://blogs.msdn.com/jensenh/archive/2005/11/23/496246.aspx One tip for testing application with time dependence, treat it as random - http://googletesting.blogspot.com/2008/04/tott-time-is-random.html Explanation of issues of Joda-time, basically it still haven't map the human view of time close enough than machine view of time - http://www.jroller.com/scolebourne/entry/why_jsr_310_isn_t Screencast of how to driven a fluent Date API - http://tedyoung.blogsome.com/2010/02/11/my-first-screencast-writing-fluent-apis-in-java-episode-1-comparing-dates/ 解读数据架构的 2021:大数据 1.0 体系基本建成,但头上仍有几朵乌云 - https://www.infoq.cn/article/gHTPkmo0vZhE7vwFAGij