我正在开发一个Django应用程序,其中我使用Twilio发送短信和WhatsApp消息,并使用SendGrid API发送邮箱.这三种情况下的计划消息中都会出现该问题.例如,如果我计划在下午06:24发送一封邮箱(计划时间是下午6:24),那么我将在晚上11:54收到邮箱,因此相差5小时30分钟.同样的问题也出现在短信和WhatsApp上.

我认为这个问题可能是由于时区的原因.我计划从印度和Twilio帐户在美国的消息.而且,5小时30分钟的时差是由于UTC格式的原因,因为印度比UTC早5小时30分钟.但我找不到任何解决方案.

此外,时间还被指定为Unix时间.我得到一个DateTime对象,它的值类似于:"2022-09-13 11:44:00".我正在使用python的"time模块"将其转换为unix时间.因此,代码如下所示:

message = MAIL(...)
finalScheduleTime = int(time.mktime(scheduleTime.timetupple()))
message.send_at = finalScheduleTime

在上述代码中,ScheduleTime是DateTime对象.

那么,有没有具体的办法来解决这个问题呢?

推荐答案

根据philnash的答案,SendGrid API和Twilio正在UTC中调度消息,而我们在没有附加时区的IST中生成消息.因此,我们首先需要附加时区,然后将其转换为Unix时间戳.请参考以下代码:

scheduleTime = scheduleTime.astimezone()
finalScheduleTime = int(time.mktime(scheduleTime.timetupple()))
message.send_at = finalScheduleTime 

因此,这将解决问题.

Python相关问答推荐

数字梯度的意外值

使用LineConnection动画1D数据

理解Python的二分库:澄清bisect_left的使用

Pandas 第二小值有条件

如何将ctyles.POINTER(ctyles.c_float)转换为int?

将jit与numpy linSpace函数一起使用时出错

按列分区,按另一列排序

如何获取TFIDF Transformer中的值?

如何过滤包含2个指定子字符串的收件箱列名?

Python解析整数格式说明符的规则?

如何在Python中找到线性依赖mod 2

未知依赖项pin—1阻止conda安装""

Polars asof在下一个可用日期加入

如何使regex代码只适用于空的目标单元格

如何在PySide/Qt QColumbnView中删除列

在Python中计算连续天数

在我融化极点数据帧之后,我如何在不添加索引的情况下将其旋转回其原始形式?

每次查询的流通股数量

在matplotlib中重叠极 map 以创建径向龙卷风图

以极轴表示的行数表达式?