从日期开始得到毫秒,但比actu显示少一天

2024-04-25 22:20:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用python打印从日期开始的毫秒,我使用下面的代码来获取毫秒,因为我是python新手,我想在这里与某人核实一下这是否是获取毫秒的正确方法:

import datetime

def findmili(date):
    return int(date.strftime("%s")) * 1000
x = datetime.datetime.strptime('01/27/2017',  "%m/%d/%Y")
print findmili(x)

有人能帮我验证一下吗,如果这不是正确的获取方法,你能告诉我在python中获取这个的确切方法是什么吗。你知道吗

看起来有点不对劲,我试图获取毫秒数Jan 12 2017,但是我的程序返回这个值:1484179200000。如果我使用this online utility将这些毫秒转换为日期,它将显示Jan 11 2017,而不是Jan 12 2017。你知道吗

注意:我只能使用Python 2.7版本。:(


Tags: 方法代码importdatetimedatereturndefjan
2条回答

当你使用这个在线站点时,注意它的结果取决于站点相信你所处的位置。在我居住的时区(加拿大东部),我得到了正确的结果。但是,如果我把网站上的时区改成美国亚利桑那州凤凰城的时区,这就是结果。你知道吗

enter image description here

我怀疑这就是为什么你会得到一个意想不到的结果。你知道吗

首先,我相信在你的问题中有一点需要澄清的是,你在寻找从epoch到你提供的日期已经过去的毫秒,因为这就是工具似乎在做的事情。你知道吗

这样做的简单方法如下:

int(datetime.datetime.now().strftime("%s")) * 1000

用自己的datetime对象替换datetime.datetime.now()。所以完成的函数可能是这样的:

import datetime

def findmili(date):
    return int(date.strftime("%s")) * 1000
x = datetime.datetime.strptime('10Nov2017', '%d%b%Y')
print findmili(x)

另外,你的代码实际上不会在python2.7中运行。这是因为,您在第6行中犯了一个错误,它实际上应该是d = datetime.datetime.strptime(myDate, "%m/%d/%Y"),而不是d = datetime.strptime(myDate, "%m/%d/%Y")

另外,你的代码也是正确的(除了上面的错误)。它返回1484150400000,返回为Thu Jan 12 2017 00:00:00 GMT+0800。你知道吗

相关问题 更多 >