我正在尝试解析通过
exiftool
从 MOV 文件的元数据中提取的日期。它的格式如下: 2024:05:31 20:57:23+03:00
。尽管 GNU 的 date
有 %:z
选项,并且它能够以这种格式生成时间戳,但它无法解析它的现有值:
# echo $creation_date
2024:05:31 20:57:23+03:00
# date "+%Y:%m:%d %H:%M:%S%:z"
2024:06:08 22:04:15+02:00
# date "+%Y:%m:%d %H:%M:%S%:z" -d "$creation_date"
date: invalid date ‘2024:05:31 20:57:23+03:00’
我在这里缺少什么?
时区不是问题。年月日用
-
分隔,这是不寻常的。它们应该用 :
分隔。你可以改变它们:
creation_date='2024:05:31 20:57:23+03:00'
read -r ymd rest <<<"$creation_date"
date -d "${ymd//:/-} $rest"
如果您想给出准确的格式规范,请使用
strptime
中的 dateutils
命令。