unix/modtime: strftime(): Support 2nd argument, but as time_t value.

Instead of struct tm like structure, as required by CPython.
This commit is contained in:
Paul Sokolovsky 2016-01-10 12:06:49 +02:00
parent fe6756aa2d
commit 8175877ad6
1 changed files with 8 additions and 2 deletions

View File

@ -155,8 +155,14 @@ STATIC mp_obj_t mod_time_sleep_us(mp_obj_t arg) {
STATIC MP_DEFINE_CONST_FUN_OBJ_1(mod_time_sleep_us_obj, mod_time_sleep_us);
STATIC mp_obj_t mod_time_strftime(mp_uint_t n_args, const mp_obj_t *args) {
assert(n_args == 1);
time_t t = time(NULL);
time_t t;
if (n_args == 1) {
t = time(NULL);
} else {
// CPython requires passing struct tm, but we allow to pass time_t
// (and don't support struct tm so far).
t = mp_obj_get_int(args[1]);
}
struct tm *tm = localtime(&t);
char buf[32];
size_t sz = strftime(buf, sizeof(buf), mp_obj_str_get_str(args[0]), tm);