在 Python 中编写的 AWS lambda 函数中为 AppSync 设置 AWSDateTime

Setting AWSDateTime for AppSync in AWS lambda function written in Python

我有一个 lambda 函数需要将项目存储在 DynamoDB table 中,AppSync 将使用该项目。我想向该项目添加一个 createdAt 和一个 updatedAt 字段,作为 AWSDateTime 类型,并将它们设置为创建时间。正如所解释的 here 我需要使用 YYYY-MM-DDThh:mm:ss.sssZ 格式的扩展 ISO 8601 日期和时间字符串。我使用:

import datetime from datetime
datetime.now().strftime('%Y-%m-%dT%H:%M:%SZ')

但是它给我的是 2022-03-26T18:23:47Z 而不是 2022-03-26T18:23:47.210Z 之类的东西(第二个后面的三个数字位置不存在)。

你能帮我解决这个问题吗?

毫秒是可选的。降低的精度格式是 valid ISO 8601 timestamps,因此是有效的 AWSDateTime 类型。

如果毫秒对您的用例有意义,可以通过多种方式添加它们:

datetime.now().strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + 'Z'
datetime.now().isoformat(timespec='milliseconds') + 'Z'

# '2022-03-27T11:05:10.351Z'