簡體   English   中英

如何在 React Native 中將字符串格式化為日期?

[英]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 ,但是slicesubstring可以以相同的方式使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM