Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.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中生成昨天和今天午夜的POSIX值?_Python_Datetime_Posix - Fatal编程技术网

如何在Python中生成昨天和今天午夜的POSIX值?

如何在Python中生成昨天和今天午夜的POSIX值?,python,datetime,posix,Python,Datetime,Posix,我一直在努力确定如何通过Python为今天和昨天(午夜)生成POSIX(UNIX)时间值。我创建了这段代码,但在如何将它们转换为POSIX值方面一直遇到困难: from datetime import datetime, timedelta import time today_string = datetime.now().strftime('%Y-%m-%d 00:00:00') yesterday_string = (datetime.now() - timedelta(0)).strfti

我一直在努力确定如何通过Python为今天和昨天(午夜)生成POSIX(UNIX)时间值。我创建了这段代码,但在如何将它们转换为POSIX值方面一直遇到困难:

from datetime import datetime, timedelta
import time
today_string = datetime.now().strftime('%Y-%m-%d 00:00:00')
yesterday_string = (datetime.now() - timedelta(0)).strftime('%Y-%m-%d 00:00:00')

today = datetime.strptime(today_string, '%Y-%m-%d %H:%M:%S')
yesterday = datetime.strptime(yesterday_string, '%Y-%m-%d %H:%M:%S')

print time.mktime(today).timetuple()
此代码产生一个异常:

TypeError: argument must be 9-item sequence, not datetime.datetime

在这一点上,我束手无策。非常感谢您提供的任何帮助。

您应该将
timetuple()
方法应用于
today
对象,而不是
time.mktime(today)
的结果:

顺便说一句,我错了,或者在你的代码中,
昨天
将等于
今天

编辑: 要获得今天的POSIX时间,您只需执行以下操作:

time.mktime(datetime.date.today().timetuple())

@巴库留就在这里。但你正在使这变得过于复杂

看看这个:

from datetime import date, timedelta
import time

today = date.today()
today_unix = time.mktime(today.timetuple())

yesterday = today - timedelta(1)
yesterday_unix = time.mktime(yesterday.timetuple())
由于
date
对象不保存时间,因此它会将其重置为午夜

您还可以将最后一部分替换为:

yesterday_unix = today_unix - 86400

但请注意,它不能在夏令时开关之间正常工作(即,您将在凌晨1点或下午23点结束)。

从datetime对象中获取unix时间戳作为字符串和浮点:

datetime.now().strftime('%s')
'1345884732'

time.mktime(datetime.now().timetuple())
1345884732.0

呃,你正在使这变得过于复杂。给我一分钟…哦,我只是编辑了我的答案,因为我没有看到这个答案。这不是他要找的时间…不是吗?他的问题的要点是将日期时间转换为unix时间戳。你想投多少票就投多少票,但我只是简单地把那个人引向正确的库函数。你说这要简单得多。所以你似乎在建议一个更简单的方法来解决他的问题(这根本不是解决他的问题的方法)。为清晰起见进行编辑。
datetime.now().strftime('%s')
'1345884732'

time.mktime(datetime.now().timetuple())
1345884732.0