我正在将结果获取到包含如下行的日志文件:
date: Sat, 12 Dec 2020 22:33:34 GMT
如果可能的话,我只想在Ubuntu Linux机器上使用Bash和GNU工具,以将其转换为本地时间“东部”或密歇根州/底特律。即使在夏令时或午夜之前/之前,它也应该可以工作。我希望将结果以通用格式存储在变量中,例如2020年12月1日为2020-12-01。对于军用时间,对于日期,最好使用第二个变量。我可以计算“周六/周日/周一/等”,也许无论如何都不需要。我希望“cut”命令可以分隔出不同的字段,但是如何处理GMT?
#!/bin/bash
datime="date: Sat, 12 Dec 2020 22:33:34 GMT"
#magic happens
echo dalocaltime is $dalocaltime and dalocaldate is $dalocaldate
结果:dalocaltime is 14:20:33 and dalocaldate is 2020-01-30
最佳答案
这对我有用,但是我无法解释${datime#* }
部分
datime="date: Sat, 12 Dec 2020 22:33:34 GMT"
dalocaltime=$(date -d "${datime#* }" '+%R')
dalocaldate=$(date -d "${datime#* }" '+%Y-%m-%d')
echo dalocaltime is $dalocaltime and dalocaldate is $dalocaldate