我试图从2017-09-12 22:33:55.28109
Python 中的这个字符串中删除毫秒(28109)。
代码:
import datetime as dt
from datetime import date,datetime
created_date = datetime.fromtimestamp(ctime)
d=datetime.strptime(created_date, "%Y-%m-%d %H:%M:%S.%fZ")
created_date = datetime.strftime(d, "%m/%d/%Y %I:%M:%S %p")
print(created_date)
Run Code Online (Sandbox Code Playgroud)
错误:
`d=datetime.strptime(created_date, "%Y-%m-%d %H:%M:%S.%fZ")`
Run Code Online (Sandbox Code Playgroud)
TypeError: must be str, not datetime.datetime
你已经有了一个datetime
对象,你不需要再次解析它。该datetime.fromtimestamp()
电话是不够的。
删除datetime.strptime()
线。
created_date = datetime.fromtimestamp(ctime)
created_date = created_date.strftime("%m/%d/%Y %I:%M:%S %p")
print(created_date)
Run Code Online (Sandbox Code Playgroud)
我也改变了你的strftime()
调用,它是一个方法,你只需在datetime
你拥有的对象上调用它。
我怀疑您打印了datetime.fromtimestamp()
调用的返回值,并感到困惑。在str()
一个转换datetime()
的实例将值的格式为ISO 8601字符串。请注意,即使您确实有一个字符串,也使用了错误的格式(该字符串中没有时区,因此%Z
不适用)。
如果您需要一个datetime
对象,而不是格式化的字符串,您也可以将时间戳转换为整数;微秒在时间戳的小数部分被捕获:
>>> ctime = 1505252035.28109
>>> datetime.fromtimestamp(ctime)
datetime.datetime(2017, 9, 12, 22, 33, 55, 281090)
>>> datetime.fromtimestamp(int(ctime))
datetime.datetime(2017, 9, 12, 22, 33, 55)
>>> print(_)
2017-09-12 22:33:55
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9821 次 |
最近记录: |