Python datetime 转换为微时间

5 投票
3 回答
6986 浏览
提问于 2025-04-17 00:37

我到处查找了一下,发现有很多小技巧,但没有简单、好用的方法来实现这个需求。我想把一个Python的 datetime 对象转换成微秒时间,像 time.time() 返回的那样(秒.微秒)。

有什么好的方法吗?使用 mktime() 会完全去掉微秒,你可以考虑构建一个 timedelta,但这似乎不太对。你也可以用 float(strftime("%s.%f"))(正确处理秒的四舍五入),但这听起来像是个超级小技巧。

那么,做这个的“正确”方法是什么呢?

3 个回答

-1

这段代码的意思是:首先,我们要用到一个叫做“time”的工具,它可以帮助我们处理时间。

接着,代码中有一行是把当前的时间转换成毫秒(千分之一秒)。具体来说,time.time()会给我们一个从1970年1月1日到现在的总秒数,然后我们把这个秒数乘以1000,就得到了毫秒。

最后,print microtime;这一行是把刚刚计算出来的毫秒数显示出来,让我们可以看到现在的时间是多少毫秒。

2

在编程中,有时候我们需要把一些数据放到一个地方,方便后续使用。这个地方就像一个容器,可以存放不同类型的数据,比如数字、文字或者更复杂的结构。

为了让这些数据能够被快速找到和使用,我们通常会给这些容器起个名字,这样在需要的时候就可以通过名字来访问它们。想象一下,就像你在家里有很多抽屉,每个抽屉里放着不同的东西,你只需要记住每个抽屉的名字,就能快速找到你想要的东西。

在编程中,我们也会使用一些特定的规则和方法来管理这些数据,确保它们能够高效地存储和检索。这样做的好处是可以让我们的程序运行得更快,也能让代码看起来更整洁。

总之,理解如何存放和管理数据是编程中非常重要的一部分,它能帮助我们写出更好的程序。

def microtime(dt):
    unixtime = dt - datetime.datetime(1970, 1, 1)
    return unixtime.days*24*60*60 + unixtime.seconds + unixtime.microseconds/1000000.0
8
time.mktime(dt.timetuple()) + dt.microsecond / 1000000.0 

如果你不想用 strftimefloat 的话,这个方法是有效的。

它返回的结果和 time.time() 一样,只不过你需要先用 dt = datetime.datetime.now() 来获取当前时间。

撰写回答