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

Expo 48中Date()输入使用问题:正常JS可用但项目内失效

Expo 48中Date()解析"YYYY/MM/DD"返回Invalid Date的解决方案

问题原因

Expo 48默认启用的Hermes JavaScript引擎对日期字符串的解析遵循更严格的ECMA-262规范,"2023/05/20"这种斜杠分隔的日期格式不属于规范定义的可自动解析格式。而Expo 47或浏览器环境的V8引擎会兼容这类非标准格式,因此出现版本间的差异。

解决方案

方法1:转换为ISO标准格式(YYYY-MM-DD)

将斜杠替换为横杠,转为Hermes可正确解析的ISO兼容格式:

const inputDate = "2023/05/20";
const isoDate = inputDate.replace(/\//g, "-");
const directDate = new Date(isoDate);

方法2:手动拆分日期参数(最可靠)

直接提取年、月、日数值传入Date构造函数(注意月份参数从0开始,需减1):

const inputDate = "2023/05/20";
const [year, month, day] = inputDate.split("/");
const directDate = new Date(year, month - 1, day);

修改后的完整示例代码

import { StyleSheet, Text, View } from "react-native";

export default function App() {
  const inputDate = "2023/05/20";
  const [year, month, day] = inputDate.split("/");
  const directDate = new Date(year, month - 1, day);

  return (
    <View style={styles.container}>
      <Text>Try Date - {directDate.toDateString()}</Text>
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: "#fff",
    alignItems: "center",
    justifyContent: "center",
  },
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:05:05