突然发现很多人关注这个用法,很抱歉由于需求导致没有考虑这么周全。
其实有很多方式获取零点的时间戳,以下给几个例子吧,推荐使用方法3也就是之前的方法2
# -*- coding:utf-8 -*-
import time,datetime
#第一种, 也是下面一位同学写的 (不推荐, 不应对外暴露时区处理)
now_time = int(time.time())
day_time = now_time - (now_time- time.timezone)%86400
print "第一种:", day_time
#第二种 (过长的格式化,优点是逻辑简单)
day_time = int(time.mktime(time.strptime(time.strftime("%Y-%m-%d", time.localtime(now_time)), "%Y-%m-%d")))
print "第二种:", day_time
#第二种变种
#这是下面一位同学写的,只是获取当日零点的日期,不太符合本主题,不过适当修改下还是可以用的
day_str = datetime.datetime.strptime(datetime.datetime.now().strftime("%Y-%m-%d"), "%Y-%m-%d")
#适当修改一下
day_time = int(time.mktime(time.strptime(datetime.datetime.now().strftime("%Y-%m-%d"), "%Y-%m-%d")))
print "第二种变种,输出日期:", day_str, " 输出时间戳:", day_time
#第三种 (推荐, 简洁)
day_time=int(time.mktime(datetime.date.today().timetuple()))
print "第三种:", day_time
测试输出如下:
[root@xxxxxxxxxxxxxxxxx ~]# date -s "2019-11-21"
2019年 11月 21日 星期四 00:00:00 CST
[root@xxxxxxxxxxxxxxxxx ~]# date && python test1.py
2019年 11月 21日 星期四 00:00:12 CST
第一种: 1574265600
第二种: 1574265600
第二种变种,输出日期: 2019-11-21 00:00:00 输出时间戳: 1574265600
第三种: 1574265600
[root@xxxxxxxxxxxxxxxxx ~]# date -s "08:12:12"
2019年 11月 21日 星期四 08:12:12 CST
[root@xxxxxxxxxxxxxxxxx ~]# date && python test1.py
2019年 11月 21日 星期四 08:12:15 CST
第一种: 1574265600
第二种: 1574265600
第二种变种,输出日期: 2019-11-21 00:00:00 输出时间戳: 1574265600
第三种: 1574265600
-----------------------------------
最近写python,遇到了一个问题,需要获取当日凌晨零点的时间戳,网上实在没有找到,自己手写了一个,有点挫
# -*- coding:utf-8 -*-
import time
#第一种,有时区影响,请参考修改后的代码
now_time = int(time.time())
day_time = now_time - now_time % 86400 + time.timezone
day_time_str = time.asctime(time.localtime(day_time))
print day_time
print day_time_str
#第二种,推荐使用
import datetime
today = datetime.date.today()
today_time = int(time.mktime(today.timetuple()))
print today_time
输出如下:
1518105600
Fri Feb 9 00:00:00 2018
1518105600