Время эпохи последнего календарного месяца - PullRequest
0 голосов
/ 26 июня 2018

Проблема:

Я хочу сгенерировать время начала и окончания эпохи последнего календарного месяца.

Предположим, сегодня в GMT GMT: Wednesday, June 13, 2018 7:38:21 AM Мне нужно сгенерировать время начала и окончания эпохи по Гринвичу за последний месяц в календаре, который не за 30 дней до сегодняшнего дня.

Это значит, что сегодня эпоха 1528875278 - 2592000 не верна.

То, что я требую, - это что-то вроде этого.

начало: 1527964200, время окончания: 1528568999 Что на самом деле переводится как

start : Saturday, May 1, 2018 6:30:00 PM
end   : Saturday, May 31, 2018 6:29:59 PM

Что я пробовал:

import time
today_time = int(time.time())
start_time = int(time.time()) - 2592000 +/- some_bias
end_time   = int(time.time()) - 2592000 +/- some_bias

Может кто-нибудь помочь мне здесь?

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Вы можете использовать встроенный модуль datetime в python (для 2.X и 3.X) . Вот пример:

import datetime
today = datetime.datetime.now()
end_of_last_month = today.replace(day=1) - datetime.timedelta(days=1)
start_of_last_month = end_of_last_month.replace(day=1)

Чтобы преобразовать в эпоху времени, вы можете сделать следующее в Python 3.3 +

start_epoch = int(start_of_last_month.timestamp())
end_epoch = int(end_of_last_month.timestamp())

В более ранних версиях Python это можно сделать так:

start_epoch = int(start_of_last_month.strftime('%s'))
end_epoch = int(end_of_last_month.strftime('%s'))
0 голосов
/ 26 июня 2018

Вы можете использовать эту команду, чтобы получить 1-й день предыдущего месяца:

TZ=GMT date -d "$(date +"%Y-%m-01") -1 month"

И используйте это, чтобы получить последнюю дату предыдущего месяца:

date -d "$(date +"%Y-%m-01") -1 day"

Для использования epoch времени и переменных:

startTime=$(TZ=GMT date -d "$(date +"%Y-%m-01") -1 month" '%s')
endTime=$(date -d "$(date +"%Y-%m-01") -1 day" '%s')
...