linux - 使用 Bash 和 GNU 工具将 GMT 时间戳转换为本地时间
问题描述
我正在将结果写入包含如下行的日志文件:
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
推荐阅读
- flask - SQL Alchemy AttributeError:“str”对象没有属性“_sa_instance_state”
- c# - 在多线程应用程序中同步属性值的正确方法
- oracle - ORACLE SQL DEVELOPER-select count(*) from multiple databases
- just-audio - MediaState 流 ConnectionState 保持等待 - audio_service 颤动
- python - 根据序列号和故障标签定义故障范围
- excel - 在 Excel 中使用宏自动求解
- javascript - 如果我调用它的方法,我的类将返回 undefined
- python - 为什么我的文本文件的内容没有在 python 中打印?
- go - 在 WASM 上添加 addEventListener("click", f)
- reactjs - “typeof Accordion”类型上不存在属性“Item”