最后一个日历月的纪元时间
Posted
技术标签:
【中文标题】最后一个日历月的纪元时间【英文标题】:Epoch time for last calender Month 【发布时间】:2018-12-05 00:36:33 【问题描述】:问题:
我想为上一个日历月生成纪元开始和结束时间。
假设今天格林威治标准时间是GMT: Wednesday, June 13, 2018 7:38:21 AM
我需要在日历中生成上个月 GMT 的开始纪元和结束纪元时间,而不是今天前 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
有人可以帮我吗?
【问题讨论】:
【参考方案1】:您可以在 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)
要转换为纪元时间,您可以在 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'))
【讨论】:
【参考方案2】:您可以使用此命令获取上个月的第一天:
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')
【讨论】:
以上是关于最后一个日历月的纪元时间的主要内容,如果未能解决你的问题,请参考以下文章