You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Amplify将JS日期传递至AWS Cognito的DateTime字段

解决AWS Cognito自定义DateTime属性格式错误问题

Cognito的自定义DateTime属性要求使用不带毫秒的ISO 8601 UTC格式(例如2024-05-20T12:34:56Z),但JavaScript的date.toISOString()会返回带毫秒的字符串(如2024-05-20T12:34:56.789Z),这就是触发格式无效错误的核心原因。

修正方案:

  • 移除日期字符串的毫秒部分:
    通过字符串截取快速生成符合要求的格式:

    const date = new Date();
    // 截断毫秒段,保留UTC标识Z
    const formattedDate = date.toISOString().split('.')[0] + 'Z';
    
    Auth.signUp({
      // 填写username、password等必填参数
      attributes: {
        'custom:mydate': formattedDate
      }
    });
    
  • 额外检查项:

    • 确认用户池内的自定义属性类型确实设为DateTime,而非String
    • 确保属性名称前缀custom:未遗漏,Cognito自定义属性必须携带该前缀
    • 若需使用非UTC时区时间,需先转换为UTC格式再处理(Cognito DateTime属性默认存储UTC时间)

内容的提问来源于stack exchange,提问作者Gasim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 17:55:20