生信服务器 | Linux 时间戳和标准时间
在 Linux 系统中,有许多场合都使用时间戳的方式表示时间,即从1970年1月1日起至当前的天数或秒数。如/etc/shadow里的密码更改日期和失效日期,还有代理服务器的访问日志对访问时间的记录等等。

对于不管是单台还是集群式的生信服务器,一个大任务长时间运行,设置和分析处理 log,对于任务的稳健持续运行很判断都非常有帮助,而这一切都需要和服务器的时间戳、标准时间息息相关。
关于时间格式的解释
UTC (Universal Time Coordinated,UTC),世界协调时间
CST (China Standard Time UTC+8:00),中国沿海时间(北京时间)
GMT (Greenwich Mean Time),林威治标准时间
EST (Eastern Standard Time),美国东部时间
查看 Linux 系统时区
1. 使用传统的 date 命令
Linux 下使用传统的date命令,会自动打印出当前时间和时区缩写。
[shenweiyan@ecs-steven ~]# date
Wed Jan 20 09:55:04 CST 2021
[shenweiyan@cloudraft-bioitee ~]# date
Tue Jan 19 20:55:51 EST 2021
或者,你也可以使用下面的命令。其中%Z格式可以输出字符形式的时区,而%z输出数字形式的时区:
[shenweiyan@ecs-steven ~]# date +"%Z %z"
CST +0800
[shenweiyan@cloudraft-bioitee ~]# date +"%Z %z"
EST -0500
2. 使用 timedatectl 命令
当你不带任何参数运行它时,这条命令可以像下图一样,输出系统时间概览,其中包含当前时区:
timedatectl
然后,你可以在命令中提供一条管道,然后用 grep 命令来像下面一样,只过滤出时区信息:
[shenweiyan@cloudraft-bioitee ~]# timedatectl | grep "Time zone"
Time zone: America/New_York (EST, -0500)
同样,我们可以学习如何使用timedatectl来设置 Linux 时区。例如:
sudo timedatectl set-timezone 'Asia/Shanghai'
时间戳格式和标准时间格式互转
下面介绍几种时间戳格式和标准时间格式转换的方法。
需要注意,Linux 下如果每个用户对应的时区如果不一样,他们获取的时间戳、标准时间也会不一样,虽然转换的方法是一样的,但注意不要跨时区去转换,即在 CST 中获取的时间戳和标准时间不要在 CST 以外的时区进行转换。如果非要转换,一定要加上时区的差异。
1. 分别以标准格式和时间戳来显示当前时间
使用 Linux 自带的date命令,分别以标准格式和时间戳来显示当前时间。
[shenweiyan@ecs-steven ~]# date
Wed Jan 20 09:30:54 CST 2021
[shenweiyan@ecs-steven ~]# date +%s
1611106272
2. 显示指定时间的时间戳
使用 Linux 自带的date命令,显示指定时间的时间戳。
[shenweiyan@ecs-steven ~]# date -d "2021-01-20 10:25:30" +%s
1611109530
3. 将时间戳转换为标准时间格式
方法 1:使用 date 命令
[shenweiyan@ecs-steven ~]# date -d '@1611109530'
Wed Jan 20 10:25:30 CST 2021
[shenweiyan@ecs-steven ~]# date -d "1970-01-01 utc 1611109530 seconds"
Wed Jan 20 10:25:30 CST 2021
[shenweiyan@ecs-steven ~]# date -d "1970-01-01 18647 days" "+%Y/%m/%d %H:%M:%S"
2021/01/20 00:00:00
[shenweiyan@ecs-steven ~]# date -d "@1611109530" +"%Y%m%d %H:%M:%S"
20210120 10:25:30
[shenweiyan@ecs-steven ~]# date -d "@1611109530" +"%F %H:%M:%S"
2021-01-20 10:25:30
[shenweiyan@ecs-steven ~]# date -d "1970-01-01 utc 1611109530 seconds" +"%F %H:%M:%S"
2021-01-20 10:25:30
方法 2:使用 awk 里的时间函数
[shenweiyan@ecs-steven ~]# echo "1611109530" |awk '{print strftime ("%F %T",$0)}'
2021-01-20 10:25:30
方法 3:使用 perl 处理
[shenweiyan@ecs-steven ~]# perl -e 'print localtime(1279592730)."\n";'
Tue Jul 20 10:25:30 2010
方法 4:使用 python 处理
[shenweiyan@ecs-steven ~]# python -c "import time; print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(1611109530)))"
2021-01-20 10:25:30
—
END—







本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
生信服务器 | Linux 时间戳和标准时间的更多相关文章
- Linux时间戳和标准时间的互转
转http://hi.baidu.com/taolizao/blog/item/2d6f9a1ba50ef3eae0fe0ba9.html 在LINUX系统中,有许多场合都使用时间戳的方式表示时间 ...
- Linux生信服务器磁盘如何挂载使用?
用过很多服务器,但一直没自己挂载过磁盘,因为待挂载的磁盘上都有数据,生怕一不小心把别人的弄坏了. 今天恰好有几块新的磁盘,供我尝试下. 首先查看下磁盘: $ df -h 文件系统 容量 已用 可用 已 ...
- javascript Date对象的介绍及linux时间戳如何在javascript中转化成标准时间格式
1.Date对象介绍 Date对象具有多种构造函数.new Date()new Date(milliseconds)new Date(datestring)new Date(year, month)n ...
- 生信软件的好帮手-bioconda--转载
http://mp.weixin.qq.com/s/nK1Kkf9lfZStoX25Y7SzHQ 这篇文章主要适用于Linux平台,当然MacOS也行,不过它有更好安装方法. 此外网上也会许多更好的关 ...
- 阿里云服务器Linux CentOS安装配置(零)目录
阿里云服务器Linux CentOS安装配置(零)目录 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 阿里云服务器Linux CentOS安装配置(二)yum安装svn 阿里云服 ...
- 阿里云服务器Linux CentOS安装配置(九)shell编译、打包、部署
阿里云服务器Linux CentOS安装配置(九)shell编译.打包.部署 1.查询当前目录以及子目录下所有的java文件,并显示查询结果 find . -name *.java -type f - ...
- 阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定
阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx star ...
- 阿里云服务器Linux CentOS安装配置(七)域名解析
阿里云服务器Linux CentOS安装配置(七)域名解析 1.购买域名 登录阿里云,左侧菜单点击[域名],然后[域名注册],完成域名购买.(一般首年45元) 2.添加域名解析 在域名列表里点击你的域 ...
- 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署
阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...
- 阿里云服务器Linux CentOS安装配置(五)jetty配置、部署
阿里云服务器Linux CentOS安装配置(五)jetty配置.部署 1.官网下载jetty:wget http://repo1.maven.org/maven2/org/eclipse/jetty ...
随机推荐
- Gitee 码云与Git 交互
一.进入码云官方网站,注册用户 官网地址:https://gitee.com/ 二.创建远程仓库 [1]点击右上角的 + 号进行创建
- Netty 心跳检测与重连机制
更多内容,前往个人博客 所谓心跳,即在 TCP 长连接中, 客户端和服务器之间定期发送的一种特殊的数据包,通知对方自己还在线,以确保 TCP 连接的有效性.心跳包还有另一个作用,经常被忽略,即:一个连 ...
- AES算法流程
明文分组长度: \(128bit\) 密钥长度: \(128bit\) 迭代轮数: \(10轮\) 加密和解密均在\(4*4\)的矩阵上进行,每个格子\(1\)个字节,共\(16\)个字节\(128b ...
- 使用 Solon Cloud 的 Jaeger 做请求链路跟踪
<dependency> <groupId>org.noear</groupId> <artifactId>jaeger-solon-cloud-plu ...
- python---滚动条操作
""" 1.让元素滚动到可见区域后,再操作.(大部分的网页自己会滚,直接找元素---下一页) drive.find_element("id",&quo ...
- 案例(一) Z-Indexing Geometry
使用官方github包,部分解释来源于Viewer - Cesium Documentation Cesium.Ion.defaultAccessToken = " ...
- 33-module
const { resolve } = require('path') const HtmlWebpackPlugin = require('html-webpack-plugin') module. ...
- vue-cli3构建和发布 实现分环境打包步骤(给不同的环境配置相对应的打包命令)
https://panjiachen.github.io/vue-element-admin-site/zh/guide/essentials/deploy.html#%E6%9E%84%E5%BB% ...
- JavaFx 实现水平滚动文本(跑马灯效果)
原文地址: JavaFx 实现水平滚动文本(跑马灯效果) - Stars-One的杂货小窝 本文是以TornadoFx框架进行编写,各位使用JavaFx可以参考 代码已经封装在common-contr ...
- Nuxt3环境变量配置
Nuxt3 正式发布还不到半年,在投入生产环境使用后,遇到了不少问题,很难找到合适的解决方案,其中环境变量配置就是其中一个,之前一直未能解决,最近要上持续集成,无法绕过这个问题,所以花了点时间研究了一 ...