Python/Django:Have DB TimeZoneField for user,我如何将其与datetime和time一起使用以获得strftime()比如';%Y-%m-%dT%H:%m:%S.000Z';?

Python/Django:Have DB TimeZoneField for user,我如何将其与datetime和time一起使用以获得strftime()比如';%Y-%m-%dT%H:%m:%S.000Z';?,python,django,Python,Django,我为用户提供了一个DB“TimeZoneField”类型,如何将其与“datetime.datetime()”对象一起使用,以获得类似“%Y-%m-%dT%H:%m:%S.000Z”这样的strftime()字符串?这是针对Google Calendar的Python数据API提要的,因为Python的datetime库不支持ISO 8601: 此外,如果您将带有.000Z时区的日期传输到谷歌日历,它将忽略在EDT和其他时间发生的事件的DST(夏令时)(因此在一年中的部分时间内,事情将暂停一小

我为用户提供了一个DB“TimeZoneField”类型,如何将其与“datetime.datetime()”对象一起使用,以获得类似“%Y-%m-%dT%H:%m:%S.000Z”这样的strftime()字符串?

这是针对Google Calendar的Python数据API提要的,因为Python的datetime库不支持ISO 8601:

此外,如果您将带有.000Z时区的日期传输到谷歌日历,它将忽略在EDT和其他时间发生的事件的DST(夏令时)(因此在一年中的部分时间内,事情将暂停一小时。)

以下是我的解决方案:假设开始时间和结束时间是时区感知的datetime.datetime对象:

timezone_string = start_datetime.strftime('%z')[0:3] + ":" + start_datetime.strftime('%z')[3:6] start_time = start_datetime.strftime('%Y-%m-%dT%H:%M:%S' + timezone_string) end_time = end_datetime.strftime('%Y-%m-%dT%H:%M:%S' + timezone_string) 时区\字符串=开始\日期时间.strftime(“%z”)[0:3]+”:“+start\日期时间.strftime(“%z”)[3:6] 开始时间=开始日期时间.strftime(“%Y-%m-%dT%H:%m:%S'+时区字符串) end\u time=end\u datetime.strftime(“%Y-%m-%dT%H:%m:%S'+时区字符串)
请注意,stftime(“%z”)不包括“:”字符,用于分隔Google日历API所需的偏移量中的小时/分钟。

这是针对Google日历的Python数据API提要的,这是一项大量工作,因为Python的日期库不支持ISO 8601:

此外,如果您将带有.000Z时区的日期传输到谷歌日历,它将忽略在EDT和其他时间发生的事件的DST(夏令时)(因此在一年中的部分时间内,事情将暂停一小时。)

以下是我的解决方案:假设开始时间和结束时间是时区感知的datetime.datetime对象:

timezone_string = start_datetime.strftime('%z')[0:3] + ":" + start_datetime.strftime('%z')[3:6] start_time = start_datetime.strftime('%Y-%m-%dT%H:%M:%S' + timezone_string) end_time = end_datetime.strftime('%Y-%m-%dT%H:%M:%S' + timezone_string) 时区\字符串=开始\日期时间.strftime(“%z”)[0:3]+”:“+start\日期时间.strftime(“%z”)[3:6] 开始时间=开始日期时间.strftime(“%Y-%m-%dT%H:%m:%S'+时区字符串) end\u time=end\u datetime.strftime(“%Y-%m-%dT%H:%m:%S'+时区字符串) 请注意,stftime(“%z”)不包括“:”字符,用于在谷歌日历API所需的偏移量中分隔小时/分钟