[英]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.