@@ -132,7 +132,7 @@ STATIC mp_obj_t mod_time_sleep(mp_obj_t arg) {
132
132
}
133
133
STATIC MP_DEFINE_CONST_FUN_OBJ_1 (mod_time_sleep_obj , mod_time_sleep );
134
134
135
- STATIC mp_obj_t mod_time_localtime (size_t n_args , const mp_obj_t * args ) {
135
+ STATIC mp_obj_t mod_time_gm_local_time (size_t n_args , const mp_obj_t * args , struct tm * ( * time_func )( const time_t * timep ) ) {
136
136
time_t t ;
137
137
if (n_args == 0 ) {
138
138
t = time (NULL );
@@ -144,7 +144,7 @@ STATIC mp_obj_t mod_time_localtime(size_t n_args, const mp_obj_t *args) {
144
144
t = mp_obj_get_int (args [0 ]);
145
145
#endif
146
146
}
147
- struct tm * tm = localtime (& t );
147
+ struct tm * tm = time_func (& t );
148
148
149
149
mp_obj_t ret = mp_obj_new_tuple (9 , NULL );
150
150
@@ -165,6 +165,15 @@ STATIC mp_obj_t mod_time_localtime(size_t n_args, const mp_obj_t *args) {
165
165
166
166
return ret ;
167
167
}
168
+
169
+ STATIC mp_obj_t mod_time_gmtime (size_t n_args , const mp_obj_t * args ) {
170
+ return mod_time_gm_local_time (n_args , args , gmtime );
171
+ }
172
+ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (mod_time_gmtime_obj , 0 , 1 , mod_time_gmtime );
173
+
174
+ STATIC mp_obj_t mod_time_localtime (size_t n_args , const mp_obj_t * args ) {
175
+ return mod_time_gm_local_time (n_args , args , localtime );
176
+ }
168
177
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (mod_time_localtime_obj , 0 , 1 , mod_time_localtime );
169
178
170
179
STATIC mp_obj_t mod_time_mktime (mp_obj_t tuple ) {
@@ -210,6 +219,7 @@ STATIC const mp_rom_map_elem_t mp_module_time_globals_table[] = {
210
219
{ MP_ROM_QSTR (MP_QSTR_ticks_cpu ), MP_ROM_PTR (& mp_utime_ticks_cpu_obj ) },
211
220
{ MP_ROM_QSTR (MP_QSTR_ticks_add ), MP_ROM_PTR (& mp_utime_ticks_add_obj ) },
212
221
{ MP_ROM_QSTR (MP_QSTR_ticks_diff ), MP_ROM_PTR (& mp_utime_ticks_diff_obj ) },
222
+ { MP_ROM_QSTR (MP_QSTR_gmtime ), MP_ROM_PTR (& mod_time_gmtime_obj ) },
213
223
{ MP_ROM_QSTR (MP_QSTR_localtime ), MP_ROM_PTR (& mod_time_localtime_obj ) },
214
224
{ MP_ROM_QSTR (MP_QSTR_mktime ), MP_ROM_PTR (& mod_time_mktime_obj ) },
215
225
};
0 commit comments