Date/Time is a fine example of something that initially seems simple, but turns out to be exceedingly complex at times. For this reason, I usually use a proper library (like Joda Time for Java, Moment.js for JavaScript, though Java 8 has improved things a lot with the built-in APIs) when dealing with any date/time data, especially when manipulating it, i.e. finding out a duration between two dates, adding a duration to a date, etc.
Also, it's helpful if you have some sort of DateService that you can mock rather than using something like "new Date()..." in your code. The article touches on this; in general you should not have tests that rely on or deal with the current datetime as that's just asking for non-deterministic behaviour. By having your code call out to a DateService to get the current date-time, rather than creating it on its own, unit testing becomes easier.
My favourite date/time story: http://stackoverflow.com/questions/6841333/why-is-subtractin...