Python: Как я получаю время от объекта datetime.timedelta?

Создать набор партий, а затем создать задачу для каждого элемента в пакете, выполняющего работу (параллельно)

async Task Main()
{
    var batchSize = 10;
    var batches = logins.Select((item, inx) => new { item, inx })
                    .GroupBy(x => x.inx / batchSize)
                    .Select(g => g.Select(x => x.item));

    foreach (var batch in batches)
    {
        var tasks = new List<Task>(batchSize);
        foreach (var login  in batch)
        {
            tasks.Add(DoWork());
        }
        await Task.WhenAll(tasks);
    }
}

public async Task DoWork()
{
    if (await _serviceLoginInjected.LogIn(login))
    {
        await _serviceLoginInjected.SendEmails();
        await _serviceLoginInjected.CreateFiles();
        await _serviceLoginInjected.DoSomethingElse();
    }
}
22
задан Sam 18 April 2009 в 21:28
поделиться

1 ответ

Странно, что Python возвращает значение в виде datetime.timedelta . Вероятно, он должен вернуть datetime.time . В любом случае, похоже, что он возвращает прошедшее время с полуночи (при условии, что столбец в таблице - 6:00 вечера). Чтобы преобразовать в datetime.time , вы можете сделать следующее:

value = datetime.timedelta(0, 64800)
(datetime.datetime.min + value).time()

datetime.datetime.min и datetime.time () , конечно документированный как часть модуля datetime , если вам нужна дополнительная информация.

A datetime.timedelta , кстати, представляет собой разницу между двумя datetime .datetime значения. Поэтому, если вы вычтете одно datetime.datetime из другого, вы получите datetime.timedelta . И если вы добавите datetime. datetime с datetime.timedelta , вы получите datetime.datetime . Вот как работает приведенный выше код.

40
ответ дан 29 November 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: