如何将ISO格式时间字符串转换为指定的日期与时间显示格式
时间格式转换实现方案
你拿到的2021-09-10T00:37:42Z是标准ISO 8601格式的UTC时间戳,以下是不同常用开发场景的实现方式:
JavaScript 实现
// 传入ISO时间字符串 function formatIsoTime(isoStr) { const date = new Date(isoStr); // 转换为MM/DD/YYYY格式,注意getMonth返回值范围为0-11,需要+1 const formattedDate = `${String(date.getMonth() + 1).padStart(2, '0')}/${String(date.getDate()).padStart(2, '0')}/${date.getFullYear()}`; // 转换为12小时制时间 let hours = date.getHours(); const period = hours >= 12 ? 'PM' : 'AM'; hours = hours % 12 || 12; const formattedTime = `${String(hours).padStart(2, '0')}:${String(date.getMinutes()).padStart(2, '0')}${period}`; return { formattedDate, formattedTime }; } // 调用示例 const result = formatIsoTime('2021-09-10T00:37:42Z'); console.log(result.formattedDate); // 输出 09/10/2021 console.log(result.formattedTime); // 输出 12:37AM
注:以上输出为本地时区时间,如果需要保留UTC时间,将方法替换为getUTCMonth、getUTCDate、getUTCFullYear、getUTCHours、getUTCMinutes即可。
Python 实现
from datetime import datetime def format_iso_time(iso_str): # 解析ISO时间 date_obj = datetime.fromisoformat(iso_str.replace('Z', '+00:00')) # 转换为MM/DD/YYYY格式 formatted_date = date_obj.strftime("%m/%d/%Y") # 转换为12小时制时间 formatted_time = date_obj.strftime("%I:%M%p") return {"formatted_date": formatted_date, "formatted_time": formatted_time} # 调用示例 result = format_iso_time("2021-09-10T00:37:42Z") print(result["formatted_date"]) # 输出 09/10/2021 print(result["formatted_time"]) # 输出 12:37AM
注:如果需要转换为本地时区输出,可以增加date_obj = date_obj.astimezone()逻辑处理。
内容的提问来源于stack exchange,提问作者Carlos Melendez
相关产品推荐
相关产品推荐

