public function setJsonSerializePrecision(string $precision) : Time
    {
        if ($this->frozen) {
            throw new \RuntimeException(get_class($this) . ' is read-only, frozen.');
        }
        switch ($precision) {
            case '':
            case 'milliseconds':
            case 'microseconds':
                $this->jsonSerializePrecision = $precision;
                return $this;
        }
        throw new \InvalidArgumentException(
            'Arg precision[' . $precision . '] isn\'t empty or value milliseconds|microseconds.'
        );
    }