如何使用date-fns解析带时区偏移的旧版微软JSON格式日期
date-fns解析带时区偏移的旧版微软JSON日期方案
直接适配格式串解法
旧版微软JSON日期格式/Date(毫秒时间戳±HHmm)/中,+0500这类时区偏移对应date-fns的xx格式令牌(代表无分隔符的±HHmm格式时区标识),只需要修改parse方法的第二个格式参数即可完成解析:
示例代码
parse( '/Date(47896200000+0500)/', "'/Date('Txx')/'", new Date() );
上述代码可以直接解析带时区偏移的目标格式字符串,无需额外预处理。
兼容异常格式的备用方案
如果遇到部分格式不规则的同类型日期字符串(比如时区缺失、时间戳长度异常),可以先通过正则提取核心参数再处理:
// 匹配微软JSON日期的正则,分别捕获时间戳和时区部分 const msDateReg = /^\/Date\((\d+)([+-]\d{4})?\)\/$/ const matchRes = '/Date(47896200000+0500)/'.match(msDateReg) if (matchRes) { // 直接用时间戳生成日期对象 const targetDate = new Date(+matchRes[1]) }
内容的提问来源于stack exchange,提问作者eponymous23
相关产品推荐
相关产品推荐

