如何用JavaScript将月份年份日期转为2023-01-15T00:00:00.0格式?
解决方案
Python 实现
核心思路是利用datetime模块解析输入字符串,固定日份为15后再格式化输出:
from datetime import datetime def convert_to_target_date(input_str): # 解析英文全称月份+年份的输入格式 parsed_date = datetime.strptime(input_str, "%B %Y") # 将日期固定为当月15日 target_date = parsed_date.replace(day=15) # 格式化并补充末尾的.0 return target_date.strftime("%Y-%m-%dT%H:%M:%S") + ".0" # 测试示例 print(convert_to_target_date("January 2023")) # 输出: 2023-01-15T00:00:00.0 print(convert_to_target_date("February 2023")) # 输出: 2023-02-15T00:00:00.0
JavaScript 实现
通过拆分输入字符串构建日期对象,固定日份后拼接出目标格式:
function convertToTargetDate(inputStr) { const [month, year] = inputStr.split(' '); // 获取对应月份的数字(Date对象月份从0开始计数) const monthIndex = new Date(`${month} 1, ${year}`).getMonth(); // 创建当月15日0点的日期对象 const targetDate = new Date(year, monthIndex, 15, 0, 0, 0); // 格式化各部分为两位数字 const formattedYear = targetDate.getFullYear(); const formattedMonth = String(targetDate.getMonth() + 1).padStart(2, '0'); const formattedDay = String(targetDate.getDate()).padStart(2, '0'); // 拼接成目标格式字符串 return `${formattedYear}-${formattedMonth}-${formattedDay}T00:00:00.0`; } // 测试示例 console.log(convertToTargetDate("January 2023")); // 输出: 2023-01-15T00:00:00.0 console.log(convertToTargetDate("February 2023")); // 输出: 2023-02-15T00:00:00.0
注意事项
- 两种方案均默认输入为英文全称月份+四位年份的格式,若输入存在缩写或其他格式需调整解析规则
- 固定将日份设为15,时分秒强制为00:00:00,末尾补充
.0以完全匹配目标格式
内容的提问来源于stack exchange,提问作者Noah
相关产品推荐
相关产品推荐

