The time crate is the underlying crate which chrono uses for its
Unfortunately, chrono is unmaintained and older versions of the time
crate have security vulnerabilites which are unfixed in chrono.
The medallion code does not use any chrono-specific features and all
uses of it could be trivially replaced with the underlying time
Note that this change adds calls to `expect`. Where these calls are
made, the previous chrono functions also panicked internally if
out-of-range values were passed.
We noticed this issue while doing a similar refactoring in a program
that also uses medallion.