Restrictions on std::time::SystemTime


Are there any restrictions on what values are allowed for SystemTime? There are various platform implementations in std that are unable to represent a SystemTime before SystemTime::UNIX_EPOCH, although there’s a test in std that creates a SystemTime of one second before UNIX_EPOCH. Is an application allowed to create arbitrary SystemTime values?


No, SystemTime is an opaque type and the only way to create it is via now method. I think you may want to look into chrono crate instead of using std::time.


@newpavlov That’s not what I meant. You can always create SystemTime values by taking a current reference and adding/substracting any Duration. The question is whether there is, or should be, a limit to the range of values that’s supposed to be supported that way.


The docs for functions like checked_add and add state that there are (unspecified) bounds on “the underlying data structure” and describe their behavior if values go outside those bounds.