【发布时间】:2019-05-19 16:51:24
【问题描述】:
我在我的应用程序中使用 C# 对象持久性模型,并从外部源填充表。我插入具有以下日期的行(在字符串列中):2018-12-12T22:27:14.73Z。这是使用以下 Go 代码从时间戳生成的:
&dynamodb.AttributeValue{S: aws.String(entity.TimeStamp.UTC().Format("2006-01-02T15:04:05.999Z"))}
但是,DynamoDB 对象持久性模型在尝试将其转换为 System.DateTime 时出现阻塞,并出现以下错误:System.InvalidOperationException: Unable to convert [2018-12-12T22:27:14.73Z] of type Amazon.DynamoDBv2.DocumentModel.Primitive to System.DateTime
如果我让我的服务编写一个 System.DateTime(使用包含 DateTime 属性的 POCO),它看起来像这样:2018-12-19T07:45:36.431Z。我错过了什么阻止 AWS 正确反序列化我的日期?看起来我写的格式和亚马逊写的一样?
【问题讨论】:
-
@JohnB 它们已经在我的表中表示为字符串;不管我的 C# 或 Go 代码是在那里写的。我的问题与为什么我似乎无法让他们退出有关。
-
阅读他们所说的应该如何使用
using ISO 8601字符串进行格式化 -
那是你的问题...格式不兼容
-
它们是 ISO 8601 字符串,请参阅我的问题中的示例。比较链接帖子中的这个例子:
2015-12-21T17:42:34Z和我的:2018-12-19T07:45:36.431Z。唯一的区别是我有小数秒,这似乎在规范之内?由 C# Dynamo 库编写的还包括小数秒,所以我认为它是正确且预期的格式。
标签: c# amazon-web-services datetime amazon-dynamodb