我正在使用 taskwarrior 作为任务管理器,并希望.ics
使用 python(ics
包)以 fformat(ICal)将任务转换为我的日历的事件。
如果我运行以下代码:
from ics import Calendar, Event
import json
task1 = {'description': 'blabla', 'scheduled': '20210730T220000Z' }
task2 = {'description': 'blabla', 'scheduled': '2021-07-30T00:00' }
task = task1
if __name__ == "__main__":
c = Calendar()
print(task)
e = Event()
e.name = task['description']
e.begin = task['scheduled']
c.events.add(e)
它给我一个错误:
arrow.parser.ParserError: Could not match input to any of ['YYYY-MM-DDTHH:mm'] on '20210730T220000Z'
如果我替换为 没有task = task1
问题task = task2
。我怀疑带有时区的 JSON 格式不受ics
. 有没有一种简单的方法/包来转换20210730T220000Z
为格式2021-07-30T00:00
?
编辑 N°1 在@mkrieger1 的评论和链接之后,我尝试了以下操作但没有成功:
import datetime
task1 = {'description': 'blabla', 'scheduled': '20210730T220000Z' }
task2 = {'description': 'blabla', 'scheduled': '2021-07-30T00:00' }
print(task1["scheduled"])
dt = datetime.datetime.strptime(task1["scheduled"], 'YYYY-MM-DDTHH:mm').strftime('YYYY-MM-DDTHH:mm')
print(dt)
编辑 N°2:这终于奏效了:
import datetime
task1 = {'description': 'blabla', 'scheduled': '20210730T220000Z' }
task2 = {'description': 'blabla', 'scheduled': '2021-07-30T00:00' }
print(task1["scheduled"])
dt = datetime.datetime.strptime(task1["scheduled"], "%Y%m%dT%H%M%S%fZ")
print(dt)