从日期开始获得毫秒,但显示的日期少于实际日期

时间:2017-11-05 03:03:59

标签: python python-2.7 datetime

我正在尝试从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版本。 :(

2 个答案:

答案 0 :(得分:1)

首先,我相信你的问题中的一点澄清就是表明你正在寻找从纪元到你提供的日期已经过去的毫秒,因为这就是工具似乎正在做的事情。

这样做的简单方法就是这样:

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

用您自己的日期时间对象替换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.strptime(myDate, "%m/%d/%Y"),而实际上应该是d = datetime.datetime.strptime(myDate, "%m/%d/%Y")

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

答案 1 :(得分:0)

当您使用该在线网站时,请注意其结果取决于网站认为您所在的位置。在我居住的时区(加拿大东部),我得到了正确的结果。但是,如果我将网站上的时区更改为美国亚利桑那州凤凰城的时区,那就是结果。

enter image description here

我怀疑这就是你得到意想不到的结果的原因。