结合日期时间和毫秒
combine datetime and milisecond
我在 x.db
文件中有一个 table,它有两列。一列是 datetime
类型,另一列是 millisecond
类型。我需要将 python.
中的两列作为一个列阅读
sample datetime and millisecond attached here
我想阅读datetime
(这将是我对剧情的x
值)作为
2022-05-25 14:20:26.948
2022-05-25 14:20:26.968
2022-05-25 14:20:26.988
2022-05-25 14:20:27.008
2022-05-25 14:20:26.028
2022-05-25 14:20:26.048
所以我可以在毫秒内绘制所需的数据。
我要构建的代码在这里
conn = sqlite3.connect('./x.db')
cur = conn.cursor()
cur.execute('select * from data ')
tmp_row = cur.fetchall()
#print(tmp_row)
conn.close()
xdate=[]
abc=[]
dfg=[]
for row in tmp_row:
tmp=row[0]
yy=tmp[0]+tmp[1]+tmp[2]+tmp[3]
mm=tmp[5]+tmp[6]
dd=tmp[8]+tmp[9]
HH=tmp[11]+tmp[12]
MM=tmp[14]+tmp[15]
ss=tmp[17]+tmp[18]
tmp2=row[1]
print(tmp2)
t=tmp2[0]+tmp2[1]+tmp2[2]
tmpdt=dd+"/"+mm+"/"+yy+" "+HH+":"+MM+":"+ss+"."+t
#print(tmpdt)
#print(tmpdt)
我得到的错误是
t=tmp2[0]+tmp21+tmp2[2] TypeError: 'int' object is not subscriptable
另一个问题是有些值只有个位数。我需要在连接时在前面添加 00
timestamp_St_ms
2022-05-25 14:20:27 8
需要的是
2022-05-25 14:20:27.008
您可以使用 datetime.datetime.strptime
和 datetime.datetime.replace
函数来获得您想要的。
from datetime import datetime
for row in tmp_row:
t = datetime.strptime(row[0], "%Y-%m-%d %H:%M:%S") # t = datetime(2022, 5, 25, 14, 20, 26)
t = t.replace(microsecond = int(row[1]) * 1000) # t = datetime(2022, 5, 25, 14, 20, 26, 948000)
print(str(t)[:23])) # str(t) = "2022-05-25 14:20:26.948000", str(t)[:23] = "2022-05-25 14:20.26.948"
我在 x.db
文件中有一个 table,它有两列。一列是 datetime
类型,另一列是 millisecond
类型。我需要将 python.
sample datetime and millisecond attached here
我想阅读datetime
(这将是我对剧情的x
值)作为
2022-05-25 14:20:26.948
2022-05-25 14:20:26.968
2022-05-25 14:20:26.988
2022-05-25 14:20:27.008
2022-05-25 14:20:26.028
2022-05-25 14:20:26.048
所以我可以在毫秒内绘制所需的数据。
我要构建的代码在这里
conn = sqlite3.connect('./x.db')
cur = conn.cursor()
cur.execute('select * from data ')
tmp_row = cur.fetchall()
#print(tmp_row)
conn.close()
xdate=[]
abc=[]
dfg=[]
for row in tmp_row:
tmp=row[0]
yy=tmp[0]+tmp[1]+tmp[2]+tmp[3]
mm=tmp[5]+tmp[6]
dd=tmp[8]+tmp[9]
HH=tmp[11]+tmp[12]
MM=tmp[14]+tmp[15]
ss=tmp[17]+tmp[18]
tmp2=row[1]
print(tmp2)
t=tmp2[0]+tmp2[1]+tmp2[2]
tmpdt=dd+"/"+mm+"/"+yy+" "+HH+":"+MM+":"+ss+"."+t
#print(tmpdt)
#print(tmpdt)
我得到的错误是
t=tmp2[0]+tmp21+tmp2[2] TypeError: 'int' object is not subscriptable
另一个问题是有些值只有个位数。我需要在连接时在前面添加 00
timestamp_St_ms
2022-05-25 14:20:27 8
需要的是
2022-05-25 14:20:27.008
您可以使用 datetime.datetime.strptime
和 datetime.datetime.replace
函数来获得您想要的。
from datetime import datetime
for row in tmp_row:
t = datetime.strptime(row[0], "%Y-%m-%d %H:%M:%S") # t = datetime(2022, 5, 25, 14, 20, 26)
t = t.replace(microsecond = int(row[1]) * 1000) # t = datetime(2022, 5, 25, 14, 20, 26, 948000)
print(str(t)[:23])) # str(t) = "2022-05-25 14:20:26.948000", str(t)[:23] = "2022-05-25 14:20.26.948"