'This is the key routine that actually does time scale conversions.
This is not public and not connected to the read-only scale property.'

def _set_scale(self, scale):

    if (scale == self.scale):
        return
    if (scale not in self.SCALES):
        raise ValueError(u'Scale    {0!r}    is    not    in    the    allowed    scales    {1}'.format(scale, sorted(self.SCALES)))
    scale_offset = SCALE_OFFSETS[(self.scale, scale)]
    if (scale_offset is None):
        self._time.scale = scale
    else:
        (jd1, jd2) = (self._time.jd1, self._time.jd2)
        (offset1, offset2) = day_frac(jd1, jd2, factor=scale_offset)
        self._time = self.FORMATS[self.format]((jd1 + offset1), (jd2 + offset2), scale, self.precision, self.in_subfmt, self.out_subfmt, from_jd=True)
