如何将 Hubspot 的午夜日期转换为 UNIX 毫秒 API
How to Convert a Date to UNIX Miliseconds at Midnight for Hubspot API
我正在尝试使用 Python 向 Hubspot API 输入数据。
我的日期格式为 %m%d%Y。我需要将其转换为以毫秒为单位的 UNIX 时间。我相信我已经使用下面的代码设置了那部分。
t = '09/02/2020'
t = datetime.strptime(t, "%m/%d/%Y").strftime("%Y-%m-%dT%H:%M:%S.%f")
ts = time.mktime(datetime.strptime(t, "%Y-%m-%dT%H:%M:%S.%f").timetuple())
ts * 10000
ts = int(ts)
这个例子的最终结果是
t= 2020-09-02T00:00:00.000000
ts = 1599019200
如果我将 ts 的结果放入 https://www.unixtimestamp.com/index.php 它似乎转换为 09/02/2020 @ 4:00am (UTC)
但是 Hubspot 说“日期属性将只存储日期,并且必须设置为你想要的日期的午夜 UTC。”
我迷路的地方是,我不知道如何设置它以便结果始终设置为午夜 UTC,而且我找不到任何可以帮助我做到这一点的示例。
任何人都可以帮助解释如何做到这一点吗?
有 datetime.timestamp()
method which returns date in unixtime 格式,但如果您查看此方法的文档,您会看到:
Note: There is no method to obtain the POSIX timestamp directly from a naive datetime
instance representing UTC time. If your application uses this convention and your system timezone is not set to UTC, you can obtain the POSIX timestamp by supplying tzinfo=timezone.utc
:
timestamp = dt.replace(tzinfo=timezone.utc).timestamp()
or by calculating the timestamp directly:
timestamp = (dt - datetime(1970, 1, 1)) / timedelta(seconds=1)
因此,以下文档解决方案是:
from datetime import datetime, timezone, timedelta
t = "09/02/2020"
ts = datetime.strptime(t, "%m/%d/%Y").replace(tzinfo=timezone.utc).timestamp()
# OR
ts = (datetime.strptime(t, "%m/%d/%Y") - datetime(1970, 1, 1)).total_seconds()
我正在尝试使用 Python 向 Hubspot API 输入数据。
我的日期格式为 %m%d%Y。我需要将其转换为以毫秒为单位的 UNIX 时间。我相信我已经使用下面的代码设置了那部分。
t = '09/02/2020'
t = datetime.strptime(t, "%m/%d/%Y").strftime("%Y-%m-%dT%H:%M:%S.%f")
ts = time.mktime(datetime.strptime(t, "%Y-%m-%dT%H:%M:%S.%f").timetuple())
ts * 10000
ts = int(ts)
这个例子的最终结果是
t= 2020-09-02T00:00:00.000000
ts = 1599019200
如果我将 ts 的结果放入 https://www.unixtimestamp.com/index.php 它似乎转换为 09/02/2020 @ 4:00am (UTC)
但是 Hubspot 说“日期属性将只存储日期,并且必须设置为你想要的日期的午夜 UTC。”
我迷路的地方是,我不知道如何设置它以便结果始终设置为午夜 UTC,而且我找不到任何可以帮助我做到这一点的示例。
任何人都可以帮助解释如何做到这一点吗?
有 datetime.timestamp()
method which returns date in unixtime 格式,但如果您查看此方法的文档,您会看到:
Note: There is no method to obtain the POSIX timestamp directly from a naive
datetime
instance representing UTC time. If your application uses this convention and your system timezone is not set to UTC, you can obtain the POSIX timestamp by supplyingtzinfo=timezone.utc
:
timestamp = dt.replace(tzinfo=timezone.utc).timestamp()
or by calculating the timestamp directly:
timestamp = (dt - datetime(1970, 1, 1)) / timedelta(seconds=1)
因此,以下文档解决方案是:
from datetime import datetime, timezone, timedelta
t = "09/02/2020"
ts = datetime.strptime(t, "%m/%d/%Y").replace(tzinfo=timezone.utc).timestamp()
# OR
ts = (datetime.strptime(t, "%m/%d/%Y") - datetime(1970, 1, 1)).total_seconds()