将时间格式从“20210730t220000z”转换为格式“2021-07-30t00:00”

mnowg1ta  于 2021-09-08  发布在  Java
关注(0)|答案(0)|浏览(295)

我将taskwarrior用作任务管理器,并希望将任务转换为日历中的事件 .ics 使用python的fformat(ical)( ics Package )。
如果我运行以下代码:

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 ?
在@mkrieger1的评论和链接后编辑n°1,我尝试了以下操作但未成功:

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)

编辑编号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)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题