isn't this a bjiection?  getMillis never throws, and construction from Long never throws, right?