嗨,我正在尝试在react native中设置日期字符串的格式,它在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'
})
: '';
}
此函数在iOS上返回10 Aug 2018
,在Android上返回10/8/2018
。
我也尝试了以下方法,并且仅在iOS中有效。
formatDateStringForDisplay = (dateString) => {
if (!dateString || !Date.parse(dateString)) {
return '';
}
return [
date.getDate(),
date.toLocaleDateString(
'en-GB',
{
month: 'short'
}
),
date.getFullYear()
].join(' ');
}
这会在iOS上显示10 Aug 2018
,在Android上显示10 10/8/18 2018
,如何将日期设置为11 Dec 2018
格式?有一个月的简称。
答案 0 :(得分:1)
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