Turns out I was (probably) wrong about the memory allocation part. Both the time and humantime crates have types that implement the Display trait, these can be used in a non-allocating manner and are (presumably) more efficient than allocating new strings.
(I haven't benchmarked a thing yet)
Welcome to your niu world ! We are a cute and loving international community Ｏ(≧▽≦)Ｏ !