2024-04-26 22:40:16 发布
网友
我在PST时间。我想要两个时间戳:
无论当前时间是什么,这些时间戳都应该是相同的。
我怎么能用Python做到这一点?
我必须使用datetime对象,然后将其转换为时间戳吗?
datetime
最明显的方法是使用datetime。但你显然是想逃避这个奇怪的原因。好吧,您可以使用time或calendar,或者各种第三方库,或者自定义代码。
time
calendar
这里有time:
import time def yesterday(): now = time.time() yesterday = time.localtime(now - 86400) # seconds/day start = time.struct_time((yesterday.tm_year, yesterday.tm_mon, yesterday.tm_mday, 0, 0, 0, 0, 0 yesterday.tm_isdst)) today = time.localtime(now) end = time.struct_time((today.tm_year, today.tm_mon, today.tm_mday, 0, 0, 0, 0, 0 today.tm_isdst)) return time.mktime(start), time.mktime(end)
如果你在一个闰秒跑这个,在一个追踪闰秒的平台上,它会给出今天而不是昨天。你可以很容易地检查(基本上,如果今天=昨天,减去另一天),但我认为这不值得。
另外,如果你在DST交叉时在午夜到01:00或23:00(取决于你的大脑半球)发生交叉的时区运行此操作,它将得到错误的一天。例如,在Brazil中,如果您在2013年2月16日的第二个23:00-00:00小时运行此代码,它将返回一天的开始时间,其中包括24小时前的时间…即今天,而不是昨天。同样的解决方法也适用于这里。
为了得到yesterday我想你可以这样做:
yesterday
>>>import datetime >>>yesterday = datetime.date.today() - datetime.timedelta(1) >>>unix_time= yesterday.strftime("%s") #Second as a decimal number [00,61] (or Unix Timestamp) >>>print unix_time '1372737600'
最明显的方法是使用
datetime
。但你显然是想逃避这个奇怪的原因。好吧,您可以使用time
或calendar
,或者各种第三方库,或者自定义代码。这里有
time
:如果你在一个闰秒跑这个,在一个追踪闰秒的平台上,它会给出今天而不是昨天。你可以很容易地检查(基本上,如果今天=昨天,减去另一天),但我认为这不值得。
另外,如果你在DST交叉时在午夜到01:00或23:00(取决于你的大脑半球)发生交叉的时区运行此操作,它将得到错误的一天。例如,在Brazil中,如果您在2013年2月16日的第二个23:00-00:00小时运行此代码,它将返回一天的开始时间,其中包括24小时前的时间…即今天,而不是昨天。同样的解决方法也适用于这里。
为了得到
yesterday
我想你可以这样做:相关问题 更多 >
编程相关推荐