如何截取子字符串?移除时间字符串秒数的实现方法
移除时间字符串中的秒数值方法
方法一:正则表达式替换
通过正则精准匹配并移除秒数部分,确保只针对时间里的秒数进行修改:
Python 示例
import re time_strings = ["9:00:10 AM", "12:10:20 PM"] pattern = r":\d{2}(?= [AP]M)" # 匹配冒号+两位数字,且后面紧跟空格和AM/PM cleaned_times = [re.sub(pattern, "", s) for s in time_strings] print(cleaned_times) # 输出: ['9:00 AM', '12:10 PM']
JavaScript 示例
const timeStrings = ["9:00:10 AM", "12:10:20 PM"]; const pattern = /:\d{2}(?= [AP]M)/g; const cleanedTimes = timeStrings.map(s => s.replace(pattern, "")); console.log(cleanedTimes); // 输出: ['9:00 AM', '12:10 PM']
方法二:时间库解析后重新格式化(Python)
借助时间处理库解析原时间字符串,再重新格式化为不含秒数的样式:
from datetime import datetime time_strings = ["9:00:10 AM", "12:10:20 PM"] cleaned_times = [] for s in time_strings: # 解析原时间字符串 time_obj = datetime.strptime(s, "%I:%M:%S %p") # 格式化为不带秒的12小时制时间,去掉小时前的前导零 formatted = time_obj.strftime("%I:%M %p").lstrip('0') cleaned_times.append(formatted) print(cleaned_times) # 输出: ['9:00 AM', '12:10 PM']
内容的提问来源于stack exchange,提问作者Otis
相关产品推荐
相关产品推荐

