在 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'
我有一个 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'