Я использую модуль времени python3 для преобразования времени между секундами и форматированной строкой. Python Функции, используемые для генерации строки: localtime и strftime. Чтобы сгенерировать время в секундах, я использую сращивание строк, за которым следует mktime. Поскольку я повторяю их несколько раз для каждого результата, меняется только год, всегда увеличивая секунды на целый год. Используемый код выглядит следующим образом:
import time
def time_string(t):
#t is second obtained by time.mktime((yr, mn, dy, hr, mn, sec, 0, 0, 0))
time_struct = time.localtime(t)
time_string = time.strftime("%Y-%m-%d %H:%M:%S", time_struct)
return time_string
def string_time(t_string):
#t_string has format '2020-01-31 08:23:35'
yr = int(t_string[:4])
mn = int(t_string[5:7])
dy = int(t_string[8:10])
hr = int(t_string[11:13])
mn = int(t_string[14:16])
se = int(t_string[17:])
t=int(time.mktime((yr, mn, dy, hr, mn, se, 0, 0, 0)))
return t
t = int(time.mktime((2020, 3, 19, 18, 15, 20, 0, 0, 0)))
print (t)
for x in range(5):
t_st = time_string(t)
print(t_st)
t = string_time(t_st)
print(t)
sys.exit("stopping..")
Результаты выполнения кода, которые я получаю, следующие:
1584621920
2020-03-19 18:15:20
1616157920
2021-03-19 18:15:20
1647693920
2022-03-19 18:15:20
1679229920
2023-03-19 18:15:20
1710852320
2024-03-19 18:15:20
1742388320
SystemExit: stopping..
Что я делаю не так? Почему это происходит? Как лучше конвертировать временную строку в секунды?