当前位置: 首页 > 知识库问答 >
问题:

DynamoDB无法转换为系统。日期时间

周洋
2023-03-14

我在应用程序中使用C#对象持久性模型,并从外部源填充表。我插入带有以下日期的行(在String列中):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. Invalid操作异常:无法转换Amazon类型的[2018-12-12T22:27:14.73Z]。DynamoDBv2。文档模型。原始到系统。DateTime

如果我让我的服务编写一个系统。DateTime(使用包含DateTime属性的POCO),它看起来像这样:2018-12-19T07:45:36.431Z。我遗漏了什么阻止AWS正确反序列化我的日期?看起来我写的格式和亚马逊写的一样?


共有1个答案

呼延承平
2023-03-14

好的,我找到了答案。DynamoDB希望列在时间戳的小数部分始终具有3位精度。当我格式化Golang的时间时,我使用了格式字符串“2006-01-02T15:04:05.999Z”,但这会导致时间。设置格式以截断尾随零(如果存在)。将时间格式字符串更改为始终以全精度打印,我就可以解决问题了。

也就是说,文档可以更清楚地说明这一精度要求。或者例外情况可以更明确一点。希望这个问题/答案能让这个例外在谷歌上搜索!

 类似资料:
  • 问题内容: 我收到此错误: 无法将MySQL日期/时间值转换为System.DateTime 当我尝试从MySQL数据库中获取数据时。我的MySQL数据库中有 日期 数据类型。但是,当将其检索到我的数据表中时,它得到了上面的错误。 我怎样才能解决这个问题? 问题答案: 如果我用谷歌搜索“无法将MySQL日期/时间值转换为System.DateTime”,我会看到许多关于从Visual Studio

  • 问题内容: 有谁知道如何将JS dateTime转换为MySQL datetime?还有一种方法可以向JS日期时间添加特定的分钟数,然后将其传递给MySQL日期时间? 问题答案: 尽管JS确实拥有足够的基本工具来执行此操作,但它相当笨拙。

  • 问题内容: 我已经尝试过一百万种不同的方法,但是没有用。任何帮助将非常感激。 上面的方法不起作用。 基本上,我想做的是获取纪元时间并将其转换为澳大利亚时间。我的当地时间是+05.30,但是我当然不希望这成为促成这种转化的因素。 编辑- 当我运行您的确切代码时,输​​出 时代1318388699000 2011年10月12日星期三08:34:59 GMT + 05:30 12/10/2011 03:

  • 问题内容: 是否有一个内置的转换方法为在Python,例如获得在指定日期的午夜?相反的转换很容易:有一个方法。 我真的必须手动打电话吗? 问题答案: 您可以使用;现在,您创建一个初始化为午夜的对象。

  • 我必须检查服务器和Android设备系统的时间差是否超过1小时。现在我从服务器上得到了以下字符串: 这些是我用于SimpleDateFormat的常量: 问题是,当我尝试将字符串日期转换为日期类时,我得到了以下结果: 据我所知,05:00是因为它是在Android设备默认设置的时区。这就是我如何得到这个日期: 正如你所看到的,即使将时区设置为3(莫斯科时间)也不会使我期望的日期。我知道我可以用字符