GoTest中如何格式化当前日期时间并存入变量使用
日期格式转换操作方案
- 直接传入输出格式串不生效的核心原因:格式化逻辑需要先匹配原始输入的日期结构完成解析,才能按目标格式输出,你跳过了原始格式匹配步骤,系统无法识别
Sun(星期缩写)、May(月份缩写)、p.m.(带点的上下午标识)这类非标准格式字段,自然转换失败。 - 第一步预处理原始字符串:将拿到的日期文本里的
a.m.全局替换为AM、p.m.全局替换为PM,标准日期解析组件不识别带分隔点的上下午缩写。 - 第二步解析原始日期:预处理后的字符串匹配输入格式串
EEE MMM dd,yyyy h:mm a,解析生成标准时间对象,这一步完成后就可以把时间对象/对应的时间戳存为自定义变量,在后续流程里直接调用。 - 第三步格式化输出:你之前写的
ff毫秒占位符写法错误,毫秒对应3位占位符fff,正确的输出格式串为yyyy.MM.dd.HH.mm.ss.fff,格式化后即可得到2014.05.11.09.60.60.321样式的结果。
可参考如下实现代码:
// 原始获取的日期文本 const rawDate = "Sun May 11,2014 9:60 p.m." // 预处理上下午标识 const parseReadyStr = rawDate.replaceAll("a.m.", "AM").replaceAll("p.m.", "PM") // 解析为标准时间对象 const dateInstance = new Date(Date.parse(parseReadyStr)) // 补位工具函数 const pad2 = num => num.toString().padStart(2, '0') const pad3 = num => num.toString().padStart(3, '0') // 拼接得到目标格式结果 const formattedDate = `${dateInstance.getFullYear()}.${pad2(dateInstance.getMonth()+1)}.${pad2(dateInstance.getDate())}.${pad2(dateInstance.getHours())}.${pad2(dateInstance.getMinutes())}.${pad2(dateInstance.getSeconds())}.${pad3(dateInstance.getMilliseconds())}` // 时间戳可直接取值存为变量使用 const timestamp = dateInstance.getTime()
内容的提问来源于stack exchange,提问作者michel.belanger
相关产品推荐
相关产品推荐

