正则替换字符串中所有的点号(.),并返回新字符串(-),js计算两个时间相差年月日时分秒。

JS 计算两个时间戳相差年月日时分秒

// JS 计算两个时间戳相差年月日时分秒
calculateDiffTime(startTime, endTime, type) {
	let runTime = parseInt(endTime - startTime)/1000
	let year = Math.floor(runTime / 86400 / 365 )
	runTime = runTime % (86400 * 365)
	let month = Math.floor(runTime / 86400 / 30)
	runTime = runTime % (86400 * 30)
	let day = Math.floor(runTime / 86400)
	runTime = runTime % 86400
	let hour = Math.floor(runTime / 3600)
	runTime = runTime % 3600
	let minute = Math.floor(runTime / 60)
	runTime = runTime % 60
	let second = runTime
	if (type === 1) { // 返回相差年数
		return year + '年'
	} else if (type === 2) { // 返回相差年数月数
		return year + '年' + month + '月'
	} else if (type === 3) { // 返回相差年数月数天数
		return year + '年' + month + '月' + day + '日'
	} else { // 返回相差年数月数天数时分秒
		return year + '年' + month + '月' + day + '日' + hour + '时' + minute + '分' + second + '秒'
	}
},

替换字符串中所有的点号,并返回新字符串。

js替换2022.12.19中的.为2022-12-19

const regex = /\./g;
const newString = '2022.12.19'.replace(regex, '-');
// newString 的值为 '2022-12-19'
console.log(newString)

或者   分割并拼凑

formateTime(e){
	var year = e.substring(0,4);
	var month = e.substring(5,7);
	var day = e.substring(8,10);
	return year+'-'+month+'-'+day
},

替换字符串中的年月日,并返回新字符串。

js替换2022年12月19日为2022-12-19

returnAge(e){
	let time = e.replace(/(\d{4}).(\d{1,2}).(\d{1,2}).+/mg, '$1-$2-$3');
	let a= (new Date(time)).getTime();  //生日
	let b= (new Date()).getTime();    	//	今天

	let c=this.calculateDiffTime(a,b,1)		//求相差年数
	// console.log(c)
	return c
},
// JS 计算两个时间戳相差年月日时分秒
calculateDiffTime(startTime, endTime, type) {
	let runTime = parseInt(endTime - startTime)
	// console.log(runTime)
	let year = Math.floor(runTime/86400/365/1000)
	if (type == 1) { // 返回相差年数
		// return year + '年'
		return year
	} 
},

好的,如果你想匹配格式为 yyyyMMddHHmmssSSS_sss.xlsx 的字符串,可以使用如下的正则表达式: ```java String patternString = "^\\d{17}_\\d{3}\\.xlsx$"; ``` 在这个正则表达式中,我们使用了正则表达式元字符 `^` 和 `$` 来匹配字符串的开头和结尾,`\\d{17}` 表示匹配 17 个数字字符(也就是年月日时分的组合),`_\\d{3}\\.xlsx` 表示匹配下划线和 3 个数字字符,以及 `.xlsx` 后缀。 如果你想提取字符串中的时间部分和文件后缀名,可以使用分组捕获的方式: ```java String patternString = "^(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{3})_(\\d{3})\\.xlsx$"; String filename = "20220815160855999_123.xlsx"; Pattern pattern = Pattern.compile(patternString); Matcher matcher = pattern.matcher(filename); if (matcher.matches()) { int year = Integer.parseInt(matcher.group(1)); int month = Integer.parseInt(matcher.group(2)); int day = Integer.parseInt(matcher.group(3)); int hour = Integer.parseInt(matcher.group(4)); int minute = Integer.parseInt(matcher.group(5)); int second = Integer.parseInt(matcher.group(6)); int millisecond = Integer.parseInt(matcher.group(7)); int suffix = Integer.parseInt(matcher.group(8)); System.out.println(String.format("%d-%02d-%02d %02d:%02d:%02d.%03d, suffix=%d", year, month, day, hour, minute, second, millisecond, suffix)); } ``` 在这个示例中,我们使用了分组捕获的方式提取了时间部分和文件后缀名,将其输出。 注意,在使用正则表达式时,由于斜杠是正则表达式的特殊字符,需要使用转义字符将其转义,例如 `\d` 表示数字字符。此外,`.` 也是正则表达式的特殊字符,需要使用转义字符来匹配真实的,例如 `\\.xlsx` 表示匹配 `.xlsx` 后缀。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值