GNU 日期 - 使用 +HH:MM 格式解析时区

问题描述 投票:0回答:1

我正在尝试解析通过

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’

我在这里缺少什么?

bash date scripting gnu exiftool
1个回答
0
投票

时区不是问题。年月日用

-
分隔,这是不寻常的。它们应该用
:
分隔。你可以改变它们:

creation_date='2024:05:31 20:57:23+03:00'
read -r ymd rest <<<"$creation_date"
date -d "${ymd//:/-} $rest"

如果您想给出准确的格式规范,请使用

strptime
中的
dateutils
命令。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.