我正在用asyncpg查询PostgreSQL数据库。我的查询正在检查一个表,以确定是否存在特定的记录号。如果记录存在,则从该记录中提取date_modified信息,我需要将其与新收集的日期进行比较。
我当前的问题是尝试从列表中提取时间戳信息,该信息由查询返回,如下所示:
[<Record date_modified=datetime.datetime(2010, 9, 9, 8, 33, 31)>]
我发现获取日期字符串的唯一方法是使用正则表达式。
date_modified = re.search(r'(\d{4},\s\d{1,2},\s\d{1,2},\s\d{1,2},\s\d{1,2},\s\d{1,2})', repr(date_check))
print (date_modified.group(0))
outputs: 2010, 9, 9, 8, 33, 31
如何将上面的输出转换为这种格式?
2010-09-09 08:33:31
答案 0 :(得分:2)
尝试一下:
import datetime
In [1465]: datetime.datetime.strftime(date_modified,'%Y-%m-%d %H:%M:%S')
Out[1465]: '2010-09-09 08:33:31'
阅读文档strftime,了解更多信息。
答案 1 :(得分:0)
我通过以下方法解决了这个问题:
date_modified = re.search(r'(\d{4},\s\d{1,2},\s\d{1,2},\s\d{1,2},\s\d{1,2},\s\d{1,2})', repr(date_check))
reformattedDate = datetime.datetime.strptime(date_modified.group(0), '%Y, %m, %d, %H, %M, %S').strftime('%Y-%m-%d %H:%M:%S')