Printing facility for std::chrono::time_point
Global singleton format looks a bit peculiar. Unfortunatelly, iostreams do not support user-defined stream properties like time format, but you can do something similar:

struct format
{
    std::string format;
    time_point time;
};

ostream &amp; operator &lt;&lt; (ostream &amp; os, format const &amp; f)
{
    // output f.time using f.format
    // ...
}


Which can be used like

std::cout &lt;&lt; format{"%Y %b %d %H:%M:%S %a", now()} &lt;&lt; std::endl;


Alongside with operator&lt;&lt;(ostream &amp;, time_point const &amp;) (which just uses some default predefined format) this can be used in a lot cleaner way.

(obviously, all this should be put to appropriate namespaces)