>>> a = str(datetime.now())
>>> a
'2012-03-22 11:16:11.343000'
我需要获取一个类似于这样的字符串:'16:11.34'
。
应该尽可能简洁。
或者我应该使用time()
吗?如何获取它?
如下代码:
datetime.now().strftime('%M:%S.%f')[:-4]
我不确定你所说的“毫秒只有两位数”,但这应该将结果保留为2位小数。也许有一种更优雅的方法,可以通过修改strftime格式字符串来减少精度 -- 我不完全确定。
编辑
如果%f
修饰符不起作用,你可以尝试类似以下的方法:
now=datetime.now()
string_i_want=('%02d:%02d.%d'%(now.minute,now.second,now.microsecond))[:-4]
我再次假设您只想截断精度。
[:-4]
的意思是“从开头开始,排除最后 4 个字符”。出于某种原因,%f
在这里不起作用,我的最终结果是将 36:31.f
截断为 36:
。@Prostak 也可能得到了截断的结果... - Izkatadatetime.now().strftime('%M:%S.%f')[:-4]
时,我得到了''
。如果我使用datetime.now().strftime('%M:%S.f')[:-4]
,我得到了'46:'
。 - Prostak这个解决方案与@gdw2提供的解决方案非常相似,只是字符串格式化正确地匹配了您所要求的“应该尽可能简洁”。
>>> import datetime
>>> a = datetime.datetime.now()
>>> "%s:%s.%s" % (a.minute, a.second, str(a.microsecond)[:2])
'31:45.57'
strftime()
,我就是想不出毫秒的参数 datetime.now().strftime('%M:%S.??')
。也许你知道吗? - Prostak>>>import datetime >>>datetime.datetime.now().strftime("%M:%S.%f")[:-4] '14:07.90'
- Pythomaniastrftime()
……它只是提供了一行解决方案的其中之一。 - Prostak>>> "%s:%s.%s" % (datetime.datetime.now().minute, datetime.datetime.now().second, str(datetime.datetime.now().microsecond)[:2])
'21:51.16'
这确实使调用datetime.now()变得多余,但我认为在这三个不同的函数调用中没有时间差异。如果我错了,请纠正我。 - Pythomania如果您想让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')
这是一种折中的方法,如果有更好的解决方案,我十分乐意倾听。
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'
strftime()
,我就是想不出毫秒的参数 datetime.now().strftime('%M:%S.??')
。也许你知道吗? - Prostak%d
而不是%s
,因为你正在处理整数值(digits)。 - NuclearPeondatetime
模块。
然后使用datetime.datetime.now()
定义一个对象。
接着,您可以使用该类的子函数来获取该对象的分钟、秒和毫秒。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
time.second 很有帮助,将其放在你的 Python 顶部。
抱歉打开一个旧的线程,但我发帖只是为了帮助有需要的人。这似乎是在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:]
Hour = int(str(datetime.now())[11:13])
16:11.34
,还是其他什么? - Nick Bastin