Python中如何将1975-07-14T16:32:47.000Z转换为14 July 1975格式?
数据库日期字符串转网页显示格式实现方案
针对数据库返回的1975-07-14T16:32:47.000Z格式日期字符串,需转换为14 July 1975格式用于UI自动化测试对比,以下是主流自动化测试常用语言的实现方法:
Python 实现
利用datetime模块解析UTC日期并格式化,注意显式处理时区避免偏差:
from datetime import datetime db_date_str = "1975-07-14T16:32:47.000Z" # 替换Z为+00:00,适配fromisoformat解析规则 utc_date = datetime.fromisoformat(db_date_str.replace("Z", "+00:00")) # 格式化为DD MonthName YYYY格式 formatted_date = utc_date.strftime("%d %B %Y") # 输出结果:14 July 1975
如果系统默认locale不是英文,需先设置英文locale确保月份名称正确:
import locale locale.setlocale(locale.LC_TIME, 'en_US.UTF-8')
Java 实现(Java 8+)
使用java.time包的API处理UTC时间,指定英文Locale保证月份格式:
import java.time.Instant; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Locale; public class DateFormatConverter { public static void main(String[] args) { String dbDateStr = "1975-07-14T16:32:47.000Z"; // 解析UTC时间戳 Instant utcInstant = Instant.parse(dbDateStr); // 定义目标格式,绑定UTC时区和英文Locale DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMMM yyyy", Locale.ENGLISH) .withZone(ZoneId.of("UTC")); String formattedDate = formatter.format(utcInstant); // 输出结果:14 July 1975 } }
JavaScript 实现(适用于Cypress/Playwright等前端自动化框架)
通过Date对象和toLocaleDateString方法直接格式化,指定UTC时区和英文格式:
const dbDateStr = "1975-07-14T16:32:47.000Z"; const utcDate = new Date(dbDateStr); // 配置格式化选项:2位数日期、完整月份名、4位数年份,强制UTC时区 const formattedDate = utcDate.toLocaleDateString('en-GB', { day: '2-digit', month: 'long', year: 'numeric', timeZone: 'UTC' }); console.log(formattedDate); // 输出:14 July 1975
关键注意事项
- 必须指定UTC时区:数据库返回的
Z代表UTC时间,若不指定时区转换,本地时区可能导致日期偏移(如东八区可能将14日转为15日) - 确保Locale为英文:不同语言环境下月份名称会有差异,显式指定英文Locale可保证格式一致
内容的提问来源于stack exchange,提问作者Pmcg1983
相关产品推荐
相关产品推荐

