'Performs strftime(), always returning a unicode string
:param format:
A strftime() format string
:return:
A unicode string of the formatted datetime'

def _format(self, format):

    format = format.replace(u'%Y', u'0000')
    temp = datetime(2000, self.month, self.day, self.hour, self.minute, self.second, self.microsecond, self.tzinfo)
    if (u'%c' in format):
        c_out = temp.strftime(u'%c')
        c_out = c_out.replace(u'2000', u'0000')
        c_out = c_out.replace(u'%', u'%%')
        format = format.replace(u'%c', c_out)
    if (u'%x' in format):
        x_out = temp.strftime(u'%x')
        x_out = x_out.replace(u'2000', u'0000')
        x_out = x_out.replace(u'%', u'%%')
        format = format.replace(u'%x', x_out)
    return temp.strftime(format)
