> Actually it has been bothering for a long time that "now" is defined by the global system settings.

+1

>  I'd love if this could be made somehow injectable. This would not only simplify testing but also help for use cases where "now" depends on some external context, e.g. when re-running a batch job from yesterday etc.

+1 or where you get the now form another source, eg a ntp. This is what `Clock` tries to address as well.

> There could be a TimeProvider contract which is used by these validators to obtain "now". 

+1

> In a next step, this contract could be made pluggable for the user.

+1

I created https://hibernate.atlassian.net/browse/HV-897