Преобразовать секунды в datetime - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь преобразовать временные интервалы в 2 минуты в формат datetime. Я хочу заниматься этим целый день, поэтому от 0 до 1440 минут с шагом 2 минуты.

Моя проблема в том, что когда я конвертирую 0 секунд в datetime, он выводит 01:00:00, когда я хочу 00:00:00. Вот код (len (df.index) = 720, он взят из набора данных, который у меня есть из тех 720 временных шагов):

from datetime import datetime

timeline = []
for timestep in range(len(df.index)):
    time = datetime.fromtimestamp(timestep*2*60).strftime("%H:%M:%S")
    timeline.append(time)
print(timeline[:5])

И результат. Есть идеи, почему?

['01:00:00', '01:02:00', '01:04:00', '01:06:00', '01:08:00']

1 Ответ

0 голосов
/ 06 мая 2020

A datetime - это полная дата и время, например May 6, 2020 7:23PM, но вам нужен период времени - a timedelta:

from datetime import timedelta

timeline = []
for timestep in range(len(df.index)):
    time = timedelta(seconds=timestep)
    timeline.append(time)

Затем вы можете преобразовать каждый объект timedelta в строку HH:MM:SS:

>>> str(timedelta(seconds=0))
'0:00:00'
>>> str(timedelta(seconds=60))
'0:01:00'
>>> str(timedelta(seconds=65))
'0:01:05'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...