Excel中ISO8601格式日期时间叠加1天8小时的公式求解
Excel公式:ISO8601日期时间叠加1天8小时
要实现单元格A1(ISO8601格式带时区,如2019-01-20T08:00:00-02:00)叠加1天8小时后,在B1输出同格式结果,可用以下公式:
=TEXT(DATEVALUE(LEFT(A1,10)) + TIMEVALUE(MID(A1,12,8)) + 1 + 8/24, "yyyy-mm-ddThh:mm:ss") & MID(A1,FIND("T",A1)+9,99)
公式拆解:
LEFT(A1,10):提取ISO8601中的日期部分(如2019-01-20),通过DATEVALUE转换为Excel可计算的日期序列号MID(A1,12,8):提取时间部分(如08:00:00),通过TIMEVALUE转换为Excel时间序列号(以小数表示的天数)+1 +8/24:叠加1天(整数1)和8小时(8/24是8小时对应的十进制天数)TEXT(..., "yyyy-mm-ddThh:mm:ss"):将计算后的日期时间值重新格式化为ISO8601的日期时间部分MID(A1,FIND("T",A1)+9,99):提取原单元格中的时区部分(支持±hh:mm或Z格式),拼接回格式化后的日期时间后,得到最终的带时区ISO8601字符串
注意事项:
- 确保A1是文本格式的ISO8601日期时间:如果Excel自动将其识别为日期时间值,时区信息可能会被转换为UTC存储,导致原时区丢失,此时需先将A1设置为文本格式再输入内容。
内容的提问来源于stack exchange,提问作者Dylan Nel
相关产品推荐
相关产品推荐

