In many applications millisecond precision is not enough to understand what's going on, let's stick to microsecond-precision like with isoformat(). Additionally the separators are changed to match those of isoformat() (which is used to format other timestamps here).