Python 如何将DateTime字符串转换为整数毫秒
在本文中,我们将讨论将Python的DateTime字符串转换为毫秒的各种方法。
使用time.time()方法
Python的time模块提供了与时间相关的各种方法和函数。在这里,我们使用time.time()方法来获取当前的CPU时间(以秒为单位)。时间是从纪元开始计算的,它返回一个以秒为单位的浮点数。将该值乘以1000并使用round()函数进行四舍五入。
注意: 纪元是时间的起点,它依赖于平台。在Windows和大多数Unix系统上,纪元为1970年1月1日00:00:00(UTC),并且秒数中不包括闰秒。
我们使用time.gmtime(0)来获取给定平台上的纪元。
语法
time()方法的语法如下:
time.time()
返回一个代表自纪元以来的秒数的浮点值。
示例
在以下示例代码中,我们使用time.time()方法获取当前时间(以秒为单位)。然后乘以1000,并使用round()函数近似该值。
import time
obj = time.gmtime(0)
epoch = time.asctime(obj)
print("The epoch is:",epoch)
curr_time = round(time.time()*1000)
print("Milliseconds since epoch:",curr_time)
输出
以上代码的输出结果如下:
The epoch is: Thu Jan 1 00:00:00 1970
Milliseconds since epoch: 1662373873162
使用datetime模块
这里我们使用datetime模块提供的各种函数来找到当前时间,并将这个字符串转换为整数毫秒。
最初,我们通过使用 datetime.utc() 方法来获取当前日期。然后,通过从当前日期中减去日期01-01-1670(datetime(1970, 1, 1))来得到自纪元以来的天数。对于这个日期,我们应用.total_seconds()函数返回自纪元以来的总秒数。最后,我们通过应用round()函数将值四舍五入到毫秒。
示例1
在下面的示例代码中,我们获取当前时间的字符串,并将其转换为整数毫秒。
from datetime import datetime
print("Current date in string format:",datetime.utcnow())
date= datetime.utcnow() - datetime(1970, 1, 1)
print("Number of days since epoch:",date)
seconds =(date.total_seconds())
milliseconds = round(seconds*1000)
print("Milliseconds since epoch:",milliseconds)
输出
上述示例代码的输出如下:
Current date in string format: 2022-09-05 10:31:52.853660
Number of days since epoch: 19240 days, 10:31:52.853671
Milliseconds since epoch: 1662373912854
示例2
时间戳( timestamp() )函数用于将日期时间对象转换为毫秒。
import time
from datetime import datetime
dt = datetime(2018, 1, 1)
milliseconds = int(round(dt.timestamp() * 1000))
print(milliseconds)
输出
这将得到输出
1514745000000