如何将mmyy格式的日期转换为mm-dd-yyyy格式?
把mmyy格式日期转换为mm-dd-yyyy格式的解决方案
前提说明
输入为4位字符串(如0519),结构是2位月份+2位年份。由于原格式不含具体日期,默认使用当月第一天(01)补全转换。
Excel/Google Sheets 实现
假设输入内容在单元格A1,使用以下公式生成日期后,将单元格格式设置为mm-dd-yyyy即可:
=DATE(20&RIGHT(A1,2),LEFT(A1,2),1)
- 逻辑解释:
RIGHT(A1,2)提取最后2位年份,拼接20补成全4位年份(若需兼容19xx年份,可将20&改为19&,或根据年份范围加判断);LEFT(A1,2)提取前2位月份;- 最后一位
1指定当月第一天作为日期值。
Python 实现
借助datetime模块处理,支持自定义年份范围判断:
from datetime import datetime def mmyy_to_mmddyyyy(mmyy_str): month = mmyy_str[:2] year_two_digit = mmyy_str[2:] # 可根据需求调整年份前缀,比如90及以上年份用19xx,其余用20xx year = '19' + year_two_digit if int(year_two_digit) >= 90 else '20' + year_two_digit date_obj = datetime(int(year), int(month), 1) return date_obj.strftime('%m-%d-%Y') # 示例调用 print(mmyy_to_mmddyyyy('0519')) # 输出:05-01-2019
JavaScript 实现
利用Date对象和本地化格式化完成转换:
function mmyyToMmddYyyy(mmyyStr) { const month = mmyyStr.slice(0, 2); const year = '20' + mmyyStr.slice(2); // 注意:JavaScript的月份是0索引,需减1 const date = new Date(year, month - 1, 1); // 格式化并替换分隔符为- return date.toLocaleDateString('en-US', { month: '2-digit', day: '2-digit', year: 'numeric' }).replace(/\//g, '-'); } // 示例调用 console.log(mmyyToMmddYyyy('0519')); // 输出:05-01-2019
内容的提问来源于stack exchange,提问作者cmarun88
相关产品推荐
相关产品推荐

