Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Linux Shell 脚本:如何将时间戳转换为时间

Linux Shell 脚本:如何将时间戳转换为时间

作者头像
运维开发王义杰
发布于 2023-09-19 08:51:57
发布于 2023-09-19 08:51:57
2K00
代码可运行
举报
运行总次数:0
代码可运行

在进行系统管理或者软件开发时,我们经常会遇到需要将时间戳转换为人类可读的时间格式的场景。这种转换在日志分析、数据同步、报表生成等多个方面都非常有用。在本文中,我们将详细介绍如何在 Linux Shell 脚本中实现这一功能。

什么是时间戳?

时间戳是一个用于表示某一特定时间点的数值。它通常是从某一固定时间点(通常为 "Unix 纪元",即 1970 年 1 月 1 日 00:00:00 UTC)开始计算的秒数。

使用 date 命令

Linux 系统中,date 命令是一个非常强大的时间处理工具,它不仅能显示、设置系统日期和时间,还能进行日期计算和转换。

基础语法

要用 date 命令将时间戳转换为可读的时间格式,你可以使用以下语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
date -d "@时间戳"

或者

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
date -d "1970-01-01 UTC 时间戳 seconds"

例如,要将时间戳 1631389887 转换为可读的时间,可以运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

date -d "@1631389887"

这将输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Fri Sep 12 00:04:47 UTC 2021

自定义输出格式

如果你想自定义输出的时间格式,可以使用 '+FORMAT' 选项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
date -d "@1631389887" '+%Y-%m-%d %H:%M:%S'

这将输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2021-09-12 00:04:47

使用 Shell 脚本

如果我们需要在 Shell 脚本中执行这一操作,可以轻松地将上面的命令嵌入到脚本中。下面是一个简单的示例脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

#!/bin/bash

timestamp=$1  # 从命令行参数获取时间戳

if [[ -z "$timestamp" ]]; then
  echo "请输入时间戳"
  exit 1
fi

human_readable_time=$(date -d "@$timestamp" '+%Y-%m-%d %H:%M:%S')

echo "转换后的时间为:$human_readable_time"

保存这个脚本,比如命名为 convert_timestamp.sh,然后通过命令行传递时间戳作为参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chmod +x convert_timestamp.sh
./convert_timestamp.sh 1631389887

这将输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
转换后的时间为:2021-09-12 00:04:47

总结

通过使用 Linux 的 date 命令,我们可以轻松地将时间戳转换为人类可读的时间格式。这不仅方便了系统管理工作,也有助于数据分析和其他开发任务。希望这篇文章能帮助你解决在实际工作中遇到的时间转换问题。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-12 22:41,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维开发王义杰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python3时间戳转换为指定格式的日
在写Python的时候经常会遇到时间格式的问题,首先就是最近用到的时间戳(timestamp)和时间字符串之间的转换。所谓时间戳,就是从 1970年1月1日 00:00:00 到现在的秒数。原来我也写过关于python3里面如何进行时间转换。 在Python里,时间戳可以通过 time 模块里的 time() 方法获得,比如: import time timestamp = time.time() print(timestamp) 输出结果: 1551077515.952753 这个数可以这么理解, 小数点前面的是从1970年1月1日 00:00:00 到现在的秒数, 小数点后面是微秒的计数。 这个时间戳不容易记忆和理解, 所以我们希望把它转换成人容易理解的时间格式,时间戳转换为指定格式的日期,常用到的模块是time和datetime。 方法1:使用time模块 import time timeStamp = 1551077515 timeArray = time.localtime(timeStamp) formatTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray) print (formatTime) 结果: 2019-02-25 14:51:55
py3study
2020/01/02
9670
玩转 SHELL 脚本之:linux date 知多少?
最近好久没 update 了,一来是近期有点烦人的私事需要处理,二来是工作有点忙,业余时间还要整个 PPT,搜集素材啥的,非常耗时间。。。好吧,这都是借口,其实是人变懒了。。。⊙﹏⊙ 不过我发现最近 1 个月以来,我关注的一些 Blog,一半以上也都没更新了,看来对大家来说年底都是多事之秋呀~ 好了,言归正传,之前有介绍过《linux 系统监控、诊断工具之 top 详解》、《linux 系统监控、诊断工具之 lsof 用法简介》,今天再来介绍一个使用频率很高的 linux 命令:date 对日期进行操作,相
用户1177713
2018/02/24
2.2K0
玩转 SHELL 脚本之:linux date 知多少?
【HarmonyOS NEXT】systemDateTime 时间戳转换为时间格式 Date,DateTimeFormat
在鸿蒙应用开发中,经常需要将时间戳转化为标准时间格式。即:一串数字转化为年月日时分秒。
用户11572713
2025/03/24
10
python下的日期与时间(时间格式转换、时间戳处理,时间差处理)
时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。
学到老
2019/01/25
14K0
linux时间戳转换成时间指令_时间戳转换公式
原文地址:http://wanping.blogbus.com/logs/28663569.html
全栈程序员站长
2022/11/11
9.2K0
python-datetime模块&时间戳常用方法汇总
datetime 模块是 Python 标准库中的一个模块,提供了处理日期和时间的类和方法。以下是一些常用的 datetime 操作和用法:
梦无矶小仔
2024/06/06
7000
python-datetime模块&时间戳常用方法汇总
生信服务器 | Linux 时间戳和标准时间
在 Linux 系统中,有许多场合都使用时间戳的方式表示时间,即从1970年1月1日起至当前的天数或秒数。如/etc/shadow里的密码更改日期和失效日期,还有代理服务器的访问日志对访问时间的记录等等。
章鱼猫先生
2021/10/15
2.9K0
生信服务器 | Linux 时间戳和标准时间
linux时间戳转换成时间指令_shell脚本获取时间戳
php时间处理 相关地址: http://blog.csdn.net/fb408487792/article/details/41079149
全栈程序员站长
2022/11/10
3.6K0
python时间序列之datetime模块
在上篇Python时间序列的文章中Peter详细介绍了time模块,本文中重点介绍的是datetime模块。这个模块可以说是time模块的升级版本,使用的情况更为普遍和常见,用法也更为全面。文章中会通过各种例子来讲解模块的使用
皮大大
2023/08/23
7550
MySQL 获得当前日期时间(以及时间的转换)。[通俗易懂]
转载:http://blog.sina.com.cn/s/blog_6d39dc6f0100m7eo.html
全栈程序员站长
2022/11/10
5.2K0
【100个 Unity实用技能】☀️ | Unity中C#获取当前时间戳,时间戳和时间格式相互转换、时间戳转换为多久之前
1970年01月01日00时00分00秒的来历:UNIX系统认为1970年1月1日0点是时间纪元,所以我们常说的UNIX时间戳是以1970年1月1日0点为计时起点时间的。
呆呆敲代码的小Y
2023/07/24
4.1K0
【100个 Unity实用技能】☀️ | Unity中C#获取当前时间戳,时间戳和时间格式相互转换、时间戳转换为多久之前
ISO8601时间字符串到时间戳处理
作者:matrix 被围观: 8,903 次 发布时间:2019-06-21 分类:Python 兼容并蓄 | 无评论 »
HHTjim 部落格
2022/09/26
1.7K0
时间戳,mysql 秒数,毫秒数与时间之间的相互转换
时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数。通俗的讲,时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 常见有10位(单位:秒)和13位(单位:毫秒)。
oktokeep
2024/10/09
1720
【100个 Unity实用技能】 | Lua中获取当前时间戳,时间戳和时间格式相互转换、时间戳转换为多久之前
在Lua中我们有时候时间相关的内容,如获取当前的时间戳,将时间戳转换为时间格式,将时间戳转换为多久之前等。
呆呆敲代码的小Y
2023/04/04
1.9K0
【100个 Unity实用技能】 | Lua中获取当前时间戳,时间戳和时间格式相互转换、时间戳转换为多久之前
Oracle绝对秒数转换为时间戳
1970-01-05 01:23:56.297 与 1970-01-05 01:24:57.432
机器学习和大数据挖掘
2019/07/02
1K0
Python时间,日期,时间戳之间转换
1.将字符串的时间转换为时间戳    方法:        a = "2013-10-10 23:40:00"        将其转换为时间数组        import time        timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S")    转换为时间戳:    timeStamp = int(time.mktime(timeArray))    timeStamp == 1381419600 2.字符串格式更改    如a = "2013-10-10 23:40:00",想改为 a = "2013/10/10 23:40:00"    方法:先转换为时间数组,然后转换为其他格式    timeArray = time.strptime(a, "%Y-%m-%d %H:%M:%S")    otherStyleTime = time.strftime("%Y/%m/%d %H:%M:%S", timeArray) 3.时间戳转换为指定格式日期:    方法一:        利用localtime()转换为时间数组,然后格式化为需要的格式,如        timeStamp = 1381419600        timeArray = time.localtime(timeStamp)        otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)        otherStyletime == "2013-10-10 23:40:00"    方法二:        import datetime        timeStamp = 1381419600        dateArray = datetime.datetime.utcfromtimestamp(timeStamp)        otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S")        otherStyletime == "2013-10-10 23:40:00" 4.获取当前时间并转换为指定日期格式    方法一:        import time        获得当前时间时间戳        now = int(time.time())  ->这是时间戳        转换为其他日期格式,如:"%Y-%m-%d %H:%M:%S"        timeArray = time.localtime(timeStamp)        otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)    方法二:        import datetime        获得当前时间        now = datetime.datetime.now()  ->这是时间数组格式        转换为指定的格式:        otherStyleTime = now.strftime("%Y-%m-%d %H:%M:%S") 5.获得三天前的时间    方法:        import time        import datetime        先获得时间数组格式的日期        threeDayAgo = (datetime.datetime.now() - datetime.timedelta(days = 3))        转换为时间戳:            timeStamp = int(time.mktime(threeDayAgo.timetuple()))        转换为其他字符串格式:            otherStyleTime = threeDayAgo.strftime("%Y-%m-%d %H:%M:%S")    注:timedelta()的参数有:days,hours,seconds,microseconds 6.给定时间戳,计算该时间的几天前时间:    timeStamp = 1381419600    先转换为datetime    import datetime    import time    dateArray = datetime.datetime.utcfromtimestamp(timeStamp)    threeDayAgo = dateArray - datetime.timedelta(days = 3)    参考5,可以转换为其他的任意格式了
py3study
2020/01/08
2.5K0
shell脚本结构、date命令、变量 原
date命令用于显示或设置系统时间与日期。 语法: date [option] 参数
阿dai学长
2019/04/03
7450
Linux命令(50)——date命令
date命令用于按照指定格式显示当前时间或者指定的时间,也可以设置系统时间。很多Shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作,此时可以使用date命令来完成。在类Unix系统中,日期被存储为一个整数,其大小为协调世界时(UTC)1970年1月1日0时0分0秒起流逝的秒数,即Unix时间戳。
恋喵大鲤鱼
2018/12/24
3.4K0
Shell脚本常用命令一览
描述:bash 是一个为GNU计划编写的Unix shell,它的名字是一系列缩写Bourne-Again SHell — 这是关于Bourne shell(sh)的一个双关语(Bourne again / Born again), Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点。
全栈工程师修炼指南
2022/09/28
1.3K0
Shell脚本常用命令一览
python中时间、日期、时间戳的转换
1.简介 在编写代码时,往往涉及时间、日期、时间戳的相互转换。 2.示例 # 引入模块 import time, datetime 2.1 str类型的日期转换为时间戳 1 # 字符类型的时间 2 tss1 = '2013-10-10 23:40:00' 3 # 转为时间数组 4 timeArray = time.strptime(tss1, "%Y-%m-%d %H:%M:%S") 5 print timeArray 6 # timeArray可以调用tm_year等 7 prin
kirin
2020/05/16
3.8K0
推荐阅读
相关推荐
Python3时间戳转换为指定格式的日
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验