我有一个web服务,我发布使用kubernetes。而我是通过看日期来做当前的交易,如果我今天已经交易了,我就不会再做了。我的问题是,我昨天或2,3天前部署的系统给出datetime.now()输出的pod创建日期。它的行为,因为没有当前的交易。
def timestamp_converter(timestamp=datetime.timestamp(datetime.now(pytz.UTC)), t_delta=0):
'''
Fix timestamp to date
'''
a = datetime.fromtimestamp(timestamp, pytz.UTC) + timedelta(t_delta)
res = int(datetime.timestamp(datetime(a.year, a.month, a.day, tzinfo=pytz.UTC)) * 1000)
return res
ts = timestamp_converter()
输出。
1588107600000 # '2020/04/29'
但今天是1588234224371(20200430)
在Stackoverflow里,我又在写自己问题的解决方案了。 :)是的,如果我们来解决。我很受启发。说实话,我不会发现这个错误。
我今天才知道。在定义函数的时候,默认值工作了一次。在这种情况下,它的默认值是安装豆荚的日期。而第二天,第二天,后天,接受下面函数的 "时间戳 "参数。
def timestamp_converter(timestamp=datetime.timestamp(datetime.now(pytz.UTC)), t_delta=0):
'''
Fix timestamp to date
'''
a = datetime.fromtimestamp(timestamp, pytz.UTC) + timedelta(t_delta)
res = int(datetime.timestamp(datetime(a.year, a.month, a.day, tzinfo=pytz.UTC)) * 1000)
return res
我将上面的代码替换为
def timestamp_converter(timestamp=None, t_delta=0):
'''
Fix timestamp to date
'''
timestamp = timestamp or datetime.timestamp(datetime.now(pytz.UTC))
a = datetime.fromtimestamp(timestamp, pytz.UTC) + timedelta(t_delta)
res = int(datetime.timestamp(datetime(a.year, a.month, a.day, tzinfo=pytz.UTC)) * 1000)
return res