在Python中将数字从sqlite转换为日期

2024-10-01 00:14:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚从sqlite下载了一个csv,其中有一列包含日期。df如下所示:

ROWID   text    is_from_me  handle_id   date
8       Esta muy    0       4           542735636047925696
9       Congratz    0       4           542735642840117952
10      En la       0       4           542735660785415872
11      Liked       1       4           542735693412165376

如何将date列转换为可读日期?你知道吗


Tags: csvtextfromiddfsqlitedateis
2条回答

似乎前9位数字可能代表自2001-01-01 00:00:00以来的秒数。你知道吗

import time, datetime
t = time.gmtime(int("542735636047925696"[0:9])+978307200)
timestamp = time.mktime(t)
dt = datetime.datetime.fromtimestamp(timestamp)    
print(dt.strftime('%Y-%m-%d %H:%M:%S'))

# 2018-03-14 15:53:56

基于Parsing "date" field of iPhone SMS file from backup

根据公认的答案,我调整了我的,只是为了有另一种方式在这里注册。:-)

from datetime import datetime

# 1970-01-01 00:00:00
unix_epoch = datetime(1970, 1, 1, 0, 0, 0)

# 2001-01-01 00:00:00   
mac_epoch = datetime(2001, 1, 1, 0, 0, 0)

# 1s = 10e9 ns
ns = 10**9

date = datetime.fromtimestamp(542735636047925696/ns) + (mac_epoch - unix_epoch)

print(date)

>>> 2018-03-14 15:53:56.047926

相关问题 更多 >