如何将mmyy格式的字符型日期转换为数值型日期?
如何将mm-yyyy格式的字符型日期转换为数值型日期?
当然可以转换,这类仅含年月的字符型日期需要先补全默认日(通常选当月1号)——因为数值型日期本质是基于某个基准点的计数(比如天数、秒数),必须包含完整的年月日信息。以下是几种常用工具的实现方法:
SAS 实现
你熟悉ddmmyy格式的处理,处理mm-yyyy的逻辑类似,补全日份后用INPUT函数解析即可:
data convert_dates; char_date = '11-1900'; /* 补全日为当月1号,转换为SAS日期值(数值型,代表从1960年1月1日起的天数) */ num_date = INPUT(cats(char_date, '-01'), MMYYDD10.); format num_date DATE9.; /* 可选:格式化显示日期 */ run;
Python 实现
用datetime模块解析字符串,再转成可计算的数值型时间戳:
from datetime import datetime char_date = '11-1900' # 解析为datetime对象,默认补日为1号 date_obj = datetime.strptime(f"{char_date}-01", "%m-%Y-%d") # 转换为时间戳(数值型,从1970年1月1日起的秒数) timestamp = date_obj.timestamp()
Excel 实现
用DATE函数拆分年月并补日,直接生成数值型日期:
假设目标字符日期在A1单元格,公式如下:
=DATE(RIGHT(A1,4), LEFT(A1,2), 1)
这个公式提取年份(RIGHT(A1,4))、月份(LEFT(A1,2)),固定日为1,得到的结果就是Excel的数值型日期(从1900年1月1日起的天数)。
内容的提问来源于stack exchange,提问作者NewUsr_stat
相关产品推荐
相关产品推荐

