static PyObject * time_ctime(PyObject *self, PyObject *args) { time_t tt; struct tm buf; if (!parse_time_t_args(args, "|O:ctime", &tt)) return NULL; if (pylocaltime(&tt, &buf) == -1) return NULL; return _asctime(&buf); }
static PyObject * time_localtime(PyObject *self, PyObject *args) { time_t when; struct tm buf; if (!parse_time_t_args(args, "|O:localtime", &when)) return NULL; if (pylocaltime(&when, &buf) == -1) return NULL; return tmtotuple(&buf); }
static PyObject * time_gmtime(PyObject *self, PyObject *args) { time_t when; struct tm buf; if (!parse_time_t_args(args, "|O:gmtime", &when)) return NULL; errno = 0; if (_PyTime_gmtime(when, &buf) != 0) return NULL; #ifdef HAVE_STRUCT_TM_TM_ZONE return tmtotuple(&buf); #else return tmtotuple(&buf, "UTC", 0); #endif }
static PyObject * time_gmtime(PyObject *self, PyObject *args) { time_t when; struct tm buf, *local; if (!parse_time_t_args(args, "|O:gmtime", &when)) return NULL; errno = 0; local = gmtime(&when); if (local == NULL) { #ifdef EINVAL if (errno == 0) errno = EINVAL; #endif return PyErr_SetFromErrno(PyExc_OSError); } buf = *local; return tmtotuple(&buf); }
static PyObject * time_localtime(PyObject *self, PyObject *args) { time_t when; struct tm buf; if (!parse_time_t_args(args, "|O:localtime", &when)) return NULL; if (_PyTime_localtime(when, &buf) != 0) return NULL; #ifdef HAVE_STRUCT_TM_TM_ZONE return tmtotuple(&buf); #else { struct tm local = buf; char zone[100]; int gmtoff; strftime(zone, sizeof(zone), "%Z", &buf); gmtoff = timegm(&buf) - when; return tmtotuple(&local, zone, gmtoff); } #endif }