我的bash脚本正在查看一个类似于yyyymmddThhmmss
的日期时间字符串,例如20160414T033407
。
我希望将此字符串转换为日期时间格式,以便我可以更改时区。目前我很难解析这个字符串,并在一小时内执行-n将时间戳转换为我当前的时区。但是,我看到我已经考虑了下一天的滚动时间等等。有什么更好的方法呢?感谢。
答案 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