是否有XQuery函数可将指定日期时间字符串转为目标格式?
XQuery 日期时间字符串转换方案
当然有对应的XQuery函数可以实现这个需求,核心是两步:解析字符串为日期时间类型,再格式化为目标字符串。
具体实现步骤
- 使用
fn:parse-dateTime()将输入的RFC风格日期字符串解析为xs:dateTime类型 - 使用
fn:format-dateTime()将解析后的日期时间对象格式化为你需要的YYYY-MM-DDTHH:MM:SS格式
代码示例
let $input := "Sun, 05 Jan 2025 15:53:10 GMT" // 解析输入字符串,模板对应输入的日期格式 let $parsed-datetime := fn:parse-dateTime("[Wn,], [D01] [Mn,3] [Y0001] [H01]:[m01]:[s01] [z3]", $input) // 格式化为目标样式 return fn:format-dateTime($parsed-datetime, "[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01]")
参数说明
parse-dateTime的第一个参数是输入格式模板:[Wn,]:匹配星期缩写加逗号(比如Sun,)[D01]:两位数字的日期(比如05)[Mn,3]:三位字母的月份缩写(比如Jan)[Y0001]:四位数字的年份(比如2025)[H01]:[m01]:[s01]:两位数字的时、分、秒[z3]:三位字母的时区标识(比如GMT)
format-dateTime的参数是输出格式模板:[Y0001]-[M01]-[D01]:四位年份、两位月份、两位日期,用连字符分隔T[H01]:[m01]:[s01]:大写字母T分隔日期和时间,后接两位时、分、秒
这个方案在主流XQuery处理器(如BaseX、MarkLogic、Saxon)中都能正常工作。
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

