javascript - React native toLocaleDateString 在 Android 上的行为不同
问题描述
嗨,我正在尝试在本机反应中格式化日期字符串,它适用于 iOS,但在 Android 上显示不同,我想将日期格式化为10 Aug 2018
短月份名称,在 Android 上显示为10/8/18
. 我正在使用.toLocaleDateString()
函数来格式化日期,但它似乎不适用于 Android。
formatDateStringForDisplay = (dateString) => {
return dateString && Date.parse(dateString)
? new Date(dateString).toLocaleDateString(
'en-GB',
{
year: 'numeric',
month: 'short',
day: 'numeric'
})
: '';
}
此函数10 Aug 2018
在 iOS 和10/8/2018
Android 上返回。
我也尝试了以下方法,它仅适用于 iOS。
formatDateStringForDisplay = (dateString) => {
if (!dateString || !Date.parse(dateString)) {
return '';
}
return [
date.getDate(),
date.toLocaleDateString(
'en-GB',
{
month: 'short'
}
),
date.getFullYear()
].join(' ');
}
这显示10 Aug 2018
在 iOS 和10 10/8/18 2018
Android 上,如何格式化日期11 Dec 2018
格式?一个月的简称。
解决方案
toLocaleDateString
不是获得所需格式的可靠方法。相反,请执行以下操作:
var dateobj = new Date();
function pad(n) {
return n < 10 ? "0"+n : n;
}
var month = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul","Aug", "Sep", "Oct", "Nov", "Dec"];
var result = pad(dateobj.getDate())+" "+ month[dateobj.getMonth()] +" "+dateobj.getFullYear();
同样根据 Mozilla 文档,格式可能会因用户的位置和计算机设置而异。
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toLocaleDateString
推荐阅读
- javascript - 如何在不使用 jQuery 的情况下从 CSS 伪事件触发 JavaScript 事件?
- robotframework - 为什么 Robot Framework、Selenium2Library、Element Text Should Be 关键字无法正确验证输入元素文本?
- amazon-web-services - 使用 lambda 函数删除关联的 cloudformation 堆栈时 EMR 集群未终止
- typescript - Deno:访问控制器中的查询参数
- vue.js - 如何将 v-text-field 标签向右对齐?
- flutter - 用于 2 路连接的 Flutter 提供程序
- python - 对于字符串列表,如何遍历字符串字符的每个位置?
- java - SeachView 不使用全宽
- kubernetes - Kuberenetes 调度:如何实现深度优先调度行为?
- javascript - 向对象添加一个简单的嵌套字段