繁体   English   中英

如何从 python 中的 datetime.now() 获取分钟、秒和毫秒?

[英]How to get min, seconds and milliseconds from datetime.now() in python?

>>> a = str(datetime.now())
>>> a
'2012-03-22 11:16:11.343000'

我需要得到一个这样的字符串: '16:11.34'

应该尽可能紧凑。

或者我应该改用 time() 吗? 我如何得到它?

关于什么:

datetime.now().strftime('%M:%S.%f')[:-4]

我不确定你的意思是“毫秒只有2位数”,但这应该保持在2位小数。 通过操纵strftime格式字符串可以有更优雅的方式来降低精度 - 我不完全确定。

编辑

如果%f修饰符不适合您,您可以尝试以下方法:

now=datetime.now()
string_i_want=('%02d:%02d.%d'%(now.minute,now.second,now.microsecond))[:-4]

再说一遍,我假设你只想截断精度。

这个解决方案与@ gdw2提供的解决方案非常相似,只是正确地完成了字符串格式化以匹配您所要求的 - “应该尽可能紧凑”

>>> import datetime
>>> a = datetime.datetime.now()
>>> "%s:%s.%s" % (a.minute, a.second, str(a.microsecond)[:2])
'31:45.57'
import datetime from datetime

now = datetime.now()

print "%0.2d:%0.2d:%0.2d" % (now.hour, now.minute, now.second)

你可以用日期和月份等来做同样的事情。

另一个类似的解

>>> a=datetime.now()
>>> "%s:%s.%s" % (a.hour, a.minute, a.microsecond)
'14:28.971209'

是的,我知道我没有完美的字符串格式。

很抱歉打开一个旧线程,但我发布以防万一它可以帮助某人。 这似乎是在Python 3中执行此操作的最简单方法。

from datetime import datetime

Date = str(datetime.now())[:10]
Hour = str(datetime.now())[11:13]
Minute = str(datetime.now())[14:16]
Second = str(datetime.now())[17:19]
Millisecond = str(datetime.now())[20:]

如果您需要将值作为数字,则将它们转换为int,例如

Hour = int(str(datetime.now())[11:13])

如果你想让你的datetime.now()精确到分钟,你可以使用

datetime.strptime(datetime.now().strftime('%Y-%m-%d %H:%M'), '%Y-%m-%d %H:%M')

它同样会持续一小时

datetime.strptime(datetime.now().strftime('%Y-%m-%d %H'), '%Y-%m-%d %H')

这是一种黑客行为,如果有人有更好的解决方案,我会全力以赴

time.second帮助很多把它放在python的顶部。

对于分钟、秒和毫秒,可以先导入datetime 然后用datetime.datetime.now()定义一个 object 。 然后您可以使用 object 的分钟、秒和毫秒,但使用 class 的子 function。

import datetime
now = datetime.datetime.now()
print (now.year)
print (now.month)
print (now.day)
print (now.hour)
print (now.minute)
print (now.second)
print (now.microsecond)

你可以阅读更多关于她的https://docs.python.org/3/library/datetime.html#datetime.datetime.year

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM