I really enjoyed the following article about Java, Time and Dates: https://yawk.at/java.time/
From the article:
An introduction to java.time
Time is a complex topic. Many programmers are unfamiliar with the difficulties and common bugs associated with time. This has in the past lead to time APIs that allowed “sloppy” code which can lead to bugs in edge-cases that will never be caught during testing but will hit you two years down the line. The old time APIs –
java.util.Calendar – did exactly that.
With Java 8, the standard library now contains one of the best date/time APIs in any language.
java.timedoes not allow “sloppy” code anymore – it is very explicit. This can help reduce bugs if you know how to use it.