关于日期时间:在python中获取当前时间(毫秒)?

Get current time in milliseconds in Python?

如何在python中获取以毫秒为单位的当前时间?


对于我所需要的,下面是我所做的,基于上面的@samplebias'评论:

1
2
3
import time
millis = int(round(time.time() * 1000))
print millis

快一点。谢谢大家,对不起,脑筋出了个屁。

重复使用:

1
2
3
import time

current_milli_time = lambda: int(round(time.time() * 1000))

然后:

1
2
>>> current_milli_time()
1378761833768


time.time()只能对第二个给出解决方案,毫秒的首选方法是datetime

1
2
3
from datetime import datetime
dt = datetime.now()
dt.microsecond


1
2
def TimestampMillisec64():
    return int((datetime.datetime.utcnow() - datetime.datetime(1970, 1, 1)).total_seconds() * 1000)


另一个解决方案是可以嵌入到自己的utils.py中的函数。

1
2
3
import time as time_ #make sure we don't override time
def millis():
    return int(round(time_.time() * 1000))

如果您希望在代码中使用一个简单的方法,返回带有日期时间的毫秒数:

1
2
3
4
5
6
7
8
9
10
from datetime import datetime
from datetime import timedelta

start_time = datetime.now()

# returns the elapsed milliseconds since the start of the program
def millis():
   dt = datetime.now() - start_time
   ms = (dt.days * 24 * 60 * 60 + dt.seconds) * 1000 + dt.microseconds / 1000.0
   return ms


只是示例代码:

1
2
import time
timestamp = int(time.time()*1000.0)

输出:一兆五千三百四十三亿四千三百七十八万一千三百一十一


我找到的获取当前UTC时间(毫秒)的最简单方法是:

1
2
3
4
5
6
7
8
9
10
11
12
# timeutil.py
import datetime


def get_epochtime_ms():
    return round(datetime.datetime.utcnow().timestamp() * 1000)

# sample.py
import timeutil


timeutil.get_epochtime_ms()

微秒是1/1000000秒,毫秒是1/1000秒,所以

dt.microseconds/1000.0应为dt.microseconds/1000000.0


1
2
3
    from datetime import datetime
    d = datetime.now()
    print d.microsecond/1000 + d.second*1000