gpt4 book ai didi

javascript - 如何在 React Native 中将字符串格式化为日期?

转载 作者:行者123 更新时间:2023-12-02 21:22:12 25 4
gpt4 key购买 nike

我从服务器 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)
}

最佳答案

重新格式化字符串的方式很好,尽管看起来像是一个小工作需要很多代码,但 slice 速度相当快。一些替代方案(不一定“更好”,只是不同):

// 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也可以以同样的方式使用。

关于javascript - 如何在 React Native 中将字符串格式化为日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60816624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com