如何在JavaScript环境中将AWS的createdAt日期转换为星期几
实现方案
你从DynamoDB拿到的AWS Amplify自动生成的createdAt字段是标准ISO 8601格式的UTC时间字符串,用JS原生能力就可以直接解析提取星期全称,不需要引入额外第三方依赖:
// 入参为Amplify查询返回的createdAt字段值 function getFullWeekday(createdAtStr) { const date = new Date(createdAtStr); // 日期合法性校验 if (isNaN(date.valueOf())) { return '无效日期'; } // 按需求提取英文星期全称 return date.toLocaleDateString('en-US', { weekday: 'long', // 必须指定UTC时区,和AWS存储的时间基准保持一致,避免时区偏移导致星期计算错误 timeZone: 'UTC' }); } // 测试用例 const sampleDate = '2021-10-20T17:05:26.758Z'; console.log(getFullWeekday(sampleDate)); // 输出结果:Wednesday
补充说明
- 如果你需要获取中文星期全称,把
toLocaleDateString的第一个参数改为zh-CN即可,输出结果为「星期三」 - 如果你的
createdAt是自定义生成的非UTC时间,把timeZone参数调整为对应时区即可 - Amplify GraphQL查询返回的
createdAt可以直接传入函数,无需做额外格式处理
内容的提问来源于stack exchange,提问作者Tyler Morales
相关产品推荐
相关产品推荐

