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

React Native中FlatList如何将20230324213000转为正确DateTime?

问题解决:moment.js解析时间字符串返回错误日期

问题原因

直接将数字20230324213000传给moment时,moment会把它当作毫秒级时间戳解析,而非日期字符串,这就导致计算出的日期严重偏离预期。

解决方案

需要明确告诉moment待解析字符串的格式,步骤如下:

  1. 确保event.Esd是字符串类型(如果是数字,先转成字符串)
  2. 在调用moment时传入第二个参数,指定日期格式为YYYYMMDDHHmmss

修改对应代码行:

// 原错误代码
{event.EpsL} {moment( event.Esd ).format('MMMM Do YYYY, h:mm:ss a')}

// 修改后代码
{event.EpsL} {moment(event.Esd.toString(), 'YYYYMMDDHHmmss').format('MMMM Do YYYY, h:mm:ss a')}

如果event.Esd本身已经是字符串类型,可简化为:

{event.EpsL} {moment(event.Esd, 'YYYYMMDDHHmmss').format('MMMM Do YYYY, h:mm:ss a')}

说明

YYYYMMDDHHmmss对应event.Esd的结构:

  • YYYY:4位年份(2023)
  • MM:2位月份(03)
  • DD:2位日期(24)
  • HH:2位小时(21,24小时制)
  • mm:2位分钟(30)
  • ss:2位秒数(00)

指定格式后,moment就能正确解析日期,输出你期望的March 24th 2023, 9:30:00 pm。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 14:22:33