Migrate to JDK 8 Date and Time API

Supersedes #368