JavaScript如何从字符串中提取两个日期值并分别存入变量?
提取字符串中的两个日期并分别存储
嘿,这事儿好办!要从类似"March 2 2017 - Aug 3 2019"的字符串里提取两个日期并存入不同变量,我给你两种实用的Python实现方案,按需选择就行:
方法一:用Python标准库datetime(无需额外安装)
这种方法适合你明确知道日期格式的场景,步骤很清晰:
- 先按字符串里的分隔符
" - "把原字符串拆成两个独立的日期子串 - 用
datetime.strptime()方法指定对应的格式解析每个子串
from datetime import datetime # 你的目标字符串 date_str = "March 2 2017 - Aug 3 2019" # 分割得到两个日期片段 date_segment1, date_segment2 = date_str.split(" - ") # 解析第一个日期(完整月份名格式) first_date = datetime.strptime(date_segment1, "%B %d %Y").date() # 解析第二个日期(月份缩写格式) second_date = datetime.strptime(date_segment2, "%b %d %Y").date() # 验证结果 print("第一个日期变量:", first_date) # 输出:2017-03-02 print("第二个日期变量:", second_date) # 输出:2019-08-03
这里的格式符说明:
%B:匹配完整的英文月份名(比如March)%b:匹配英文月份缩写(比如Aug)%d:匹配两位或一位的日期数字%Y:匹配四位数的年份
方法二:用dateutil.parser(更灵活,自动识别格式)
如果你的日期格式不固定(比如有时是全称月份、有时是缩写,甚至日期顺序变化),这个方法会更省心,它能自动识别绝大多数常见日期格式。不过需要先安装依赖:
pip install python-dateutil
实现代码:
from dateutil import parser date_str = "March 2 2017 - Aug 3 2019" date_segment1, date_segment2 = date_str.split(" - ") # 自动解析日期,不用手动指定格式 first_date = parser.parse(date_segment1).date() second_date = parser.parse(date_segment2).date() print("第一个日期变量:", first_date) print("第二个日期变量:", second_date)
这种方法不用纠结格式细节,容错性更强,适合处理格式多变的字符串。
小补充
如果你的字符串分隔符不是固定的" - "(比如可能有多个空格、其他符号),也可以用正则表达式提取日期,比如用re.findall()匹配[A-Za-z]+ \d+ \d{4}这样的模式,把所有符合日期格式的子串捞出来,再分配给变量就行。
内容的提问来源于stack exchange,提问作者User1538
相关产品推荐
相关产品推荐

