Intl 在 React Native 中不适用于 Android
Posted
技术标签:
【中文标题】Intl 在 React Native 中不适用于 Android【英文标题】:Intl not working for Android in React Native 【发布时间】:2022-01-11 16:02:43 【问题描述】:我正在获得像 202001 这样的价值。
我想像 January_2020 那样隐藏它。
有没有办法像这样转换?:
202001->January_2020
我尝试了以下一个。
const dateToStr = (input) =>
if (input.length !== 6)
return "wrong date syntax, use YYYYMM";
const parts = input.match(/([0-9]4)([0-9]2)/);
if (!parts)
return "wrong date syntax, use YYYYMM";
// NOTE: check syntax of parts
const formatter = new Intl.DateTimeFormat("en-EN", month: "long" )
.format;
const formatted = formatter(
new Date(Date.UTC(parseInt(parts[1]), parseInt(parts[2]) - 1))
);
return `$formatted_$parts[1]`;
;
它显示如下错误:--
can't find variable:Intl
如何在不使用 android 和 ios 中的任何库的情况下在 javascript 中获取此更新值?
【问题讨论】:
【参考方案1】:无需使用Intl.DateTimeFormat
。您可以简单地使用Date
类。
const dateToStr = (input) =>
if (input.length !== 6)
return "wrong date syntax, use YYYYMM";
const parts = input.match(/([0-9]4)([0-9]2)/);
if (!parts)
return "wrong date syntax, use YYYYMM";
const monthNumber = Number(parts[2]);
if (monthNumber < 1 || monthNumber > 12)
return "Wrong month number.";
const d = new Date();
d.setMonth(monthNumber-1);
const monthName = d.toLocaleString("en-EN", month: "long");
return `$monthName_$parts[1]`;
;
【讨论】:
以上是关于Intl 在 React Native 中不适用于 Android的主要内容,如果未能解决你的问题,请参考以下文章
@gorhom/react-native-bottom-sheet 不适用于 Android
React Native fetch 不适用于 redux?