如何在shell脚本中将yyyymmddThhmmss转换为可变日期时间类型?

时间:2016-04-16 23:11:50

标签: bash

我的bash脚本正在查看一个类似于yyyymmddThhmmss的日期时间字符串,例如20160414T033407

我希望将此字符串转换为日期时间格式,以便我可以更改时区。目前我很难解析这个字符串,并在一小时内执行-n将时间戳转换为我当前的时区。但是,我看到我已经考虑了下一天的滚动时间等等。有什么更好的方法呢?感谢。

2 个答案:

答案 0 :(得分:1)

日期不允许“YYYYMMDDHHMMSS”,但它确实是“YYYYMMDD HH:MM:SS”,所以:

D="20100101123456"
date -d "${D:0:8} ${D:8:2}:${D:10:2}:${D:12:2}"

答案 1 :(得分:0)

可以用sed打破它并以其他工具可以理解的格式重复它。

$ echo '20160414T033407' | sed -r 's/([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2})([0-9]{2})([0-9]{2})/\1-\2-\3 \4:\5:\6/'
2016-04-14 03:34:07

然后将它提供给日期以便以您喜欢的格式输出,例如Unix时间戳:

$ date --date="$(echo '20160414T033407' | sed -r 's/([0-9]{4})([0-9]{2})([0-9]{2})T([0-9]{2})([0-9]{2})([0-9]{2})/\1-\2-\3 \4:\5:\6/')" +%s
1460630047
相关问题