Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 最后一个日历月的纪元时间_Python_Bash_Timestamp_Epoch - Fatal编程技术网

Python 最后一个日历月的纪元时间

Python 最后一个日历月的纪元时间,python,bash,timestamp,epoch,Python,Bash,Timestamp,Epoch,问题: 我想为上一个日历月生成历元开始和结束时间 假设今天的格林尼治标准时间是:2018年6月13日星期三上午7:38:21 我需要在日历中生成上个月GMT的开始历元和结束历元时间,而不是今天之前的30天 这意味着今天的epoch1528875278-2592000不正确 我要求的是这样的东西 开始:1527964200,结束时间:1528568999 这实际上转化为 start : Saturday, May 1, 2018 6:30:00 PM end : Saturday, May 3

问题:

我想为上一个日历月生成历元开始和结束时间

假设今天的格林尼治标准时间是:2018年6月13日星期三上午7:38:21 我需要在日历中生成上个月GMT的开始历元和结束历元时间,而不是今天之前的30天

这意味着今天的epoch
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

有人能帮我吗?

您可以使用此命令获取上个月的第一天:

TZ=GMT date -d "$(date +"%Y-%m-01") -1 month"
date -d "$(date +"%Y-%m-01") -1 day"
并使用此项获取上个月的最后日期:

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')

您可以在python中使用内置的
datetime
模块(适用于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)
要转换为纪元时间,可以在Python3.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'))