[英]How to format a String to Date in React Native?
我正在從服務器yyyyMMdd:hhmmss
獲取這種格式的Date
String
。
有沒有一種通用的方法可以將此字符串格式化為Date
對象?
編輯
formatDate = (data) => {
return data.slice(6, 8) + "." + data.slice(4, 6) + "." + data.slice(0, 4) + " " + data.slice(9, 11) + ":" + data.slice(11, 13)
}
您重新格式化字符串的方式很好,即使看起來像一個小工作的很多代碼,切片也非常快。 一些替代方案(不一定“更好”,只是不同):
// Reformat yyyyMMdd:hhmmss as dd.mm.yyyy hh:mm:ss function formatMatch(s) { let b = s.match(/\\d\\d/g) || []; return `${b[3]}.${b[2]}.${b[0]}${b[1]} ${b[4]}:${b[5]}:${b[6]}`; } function formatReplace(s) { return s.replace(/(\\d{4})(\\d{2})(\\d{2}):(\\d{2})(\\d{2})(\\d{2})/, '$3.$2.$1 $4:$5:$6'); } formatDate = (data) => { return data.slice(6, 8) + "." + data.slice(4, 6) + "." + data.slice(0, 4) + " " + data.slice(9, 11) + ":" + data.slice(11, 13) } let s = '20200323:123445'; console.log(formatDate(s)); console.log(formatMatch(s)); console.log(formatReplace(s));
如果你想獲得一個實際的 Date 對象,那么不要使用這些位來創建另一個字符串,只需將它們傳遞給構造函數:
// Parse yyyyMMdd:hhmmss to Date object function parseD(s) { let b = s.match(/\\d\\d/g) || []; return new Date(b[0]+b[1], b[2]-1, b[3], b[4], b[5], b[6]); } let s = '20200327:134523'; console.log(parseD(s).toString());
|| []
的使用 || []
表示如果沒有匹配項,則返回一個空數組,因此所有b[*]
項都返回undefined並且結果是無效日期。
上面使用了match ,但是slice或substring可以以相同的方式使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.