linux - 在 Linux 中将小时添加到日期和时间
问题描述
我正在尝试使用“日期”命令在 Linux(Ubuntu 18.04.03)中为日期和时间添加 5 小时。如果我指定日期与不指定日期,我会得到不同的结果。
示例 1:我想将 5 小时添加到特定日期:
[12:45:25 ~]$ date -d "2019-12-08 12:16:45 +5 hours"
Sun Dec 8 03:16:45 EST 2019
但结果是在指定日期和时间之前 9 小时。我期待的日期是 12 月 8 日,时间是 17:16:45。
示例 2:我将 5 小时添加到系统日期:
[12:45:37 ~]$ date -d "+5 hours"
Sun Dec 8 17:46:02 EST 2019
这个结果是正确的,正如我所料。
我想在 bash 脚本中使用它,并且无法确定我做错了什么,我得到了这些不同的结果。
任何帮助将不胜感激。
解决方案
将 EST 添加到日期和时间字符串将给出正确答案。
我发现像这样获取时区和偏移量是值得的:
dateInfo=$(date +"%Z %z")
dateTZ=${dateInfo:0:3}
dateOffset="+"${dateInfo:5:2}
然后在转换代码中使用它们:
DATE=$(date -d "$CDATE1 $dateTZ $dateOffset hours" +%Y%m%d)
(其中 CDATE1 是从文件的创建日期解析为日期和时间)
推荐阅读
- c# - 传输级别的 C# SqlConnection 安全和加密
- colors - 如何转换格式为 0.986246,0.007121,0.027434,1.000000 的颜色代码
- html - 如何使用 flexbox 实现这种灵活布局
- mongodb - 在 mongoDB 中替换 $Set
- javascript - 防止 HTML 表格行被拖到另一个表格
- c++ - 使用条件语句仅在 C++ 中对输入的 3 位数字从最小到最大进行排序
- r - 列表中向量的副本
- c# - 条件处理 Firebase 推送通知
- python - 如何将 Etag 与 YouTube API 一起使用?
- r - 如何对根据分组因子缩放的变量进行反向变换?