我需要将 Excel/VBA 中包含的时区(来自外部源)的 ISO8601 日期/时间格式解析为正常的 Excel 日期。据我所知,Excel XP(我们正在使用的)没有该内置例程,因此我想我正在寻找用于解析的自定义 VBA 函数。
ISO8601 日期时间看起来像以下之一:
2011-01-01
2011-01-01T12:00:00Z
2011-01-01T12:00:00+05:00
2011-01-01T12:00:00-05:00
2011-01-01T12:00:00.05381+05:00
最佳答案
有一种(相当)简单的方法可以使用公式而不是宏来解析不带时区的 ISO 时间戳。这并不完全是原始发帖者所问的问题,但我在尝试解析 Excel 中的 ISO 时间戳时发现了这个问题,并发现 this solution很有用,所以我想在这里分享一下。
以下公式将解析 ISO 时间戳,同样不包含时区:
=DATEVALUE(MID(A1,1,10))+TIMEVALUE(MID(A1,12,8))
这将生成浮点格式的日期,然后您可以使用普通 Excel 格式将其格式化为日期。
关于excel - 在 Excel 中解析 ISO8601 日期/时间(包括时区),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4896116/