生信服务器 | 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 ...
随机推荐
- 【转载】vue3 中如何像 vue2 的 extend 一样挂载未挂载的组件,拿到标签本身($el)
原文地址:https://blog.csdn.net/qq_39953537/article/details/110437554 vue3 中如何像 vue2 的 extend 一样挂载未挂载的组件, ...
- C#笔记之泛型
泛型是C#中应用极为广泛的一种语法,本篇文章将详细介绍泛型的定义.使用.性能等. 一.什么是泛型 首先需要记住的是,泛型是.NET 2.0推出的语法,这样的话,泛型基本可以用于所有程序的开发,而不需要 ...
- 动手造轮子自己实现人工智能神经网络(ANN),解决鸢尾花分类问题Golang1.18实现
人工智能神经网络( Artificial Neural Network,又称为ANN)是一种由人工神经元组成的网络结构,神经网络结构是所有机器学习的基本结构,换句话说,无论是深度学习还是强化学习都是基 ...
- 大语言模型快速推理: 在 Habana Gaudi2 上推理 BLOOMZ
本文将展示如何在 Habana Gaudi2 上使用 Optimum Habana.Optimum Habana 是 Gaudi2 和 Transformers 库之间的桥梁.本文设计并实现了一个大模 ...
- [Web服务容器/Apache Tomcat]WINDOWS系统下:一台机器部署多个[解压版]Tomcat
以windows为例. 1 思路 1.1 前置条件 已成功配置JDK (JAVA_HOME / Path) 控制面板>所有控制面板项>系统>高级系统设置>系统变量(S): JA ...
- SQL优化(二)-- 慢查询
1.慢查询日志 MYSQL的慢查询日志是Mysql提供的一种日志记录方式,它主要是用来记录mysql执行语句过程中,响应时间超过阀值的语句,这个阀值可以通过long_query_time去指定,比如说 ...
- Redis(七)缓存穿透、缓存击穿、缓存雪崩以及分布式锁
应用问题解决 1 缓存穿透 1.1 访问结构 正常情况下,服务器接收到浏览器发来的web服务请求,会先去访问redis缓存,如果缓存中存在数据则直接返回,否则会去查询数据库里面的数据,然后保存在red ...
- 【kafka】-分区-消费端负载均衡
一.为什么kafka要做分区? 因为当一台机器有可能扛不住(类比:就像redis集群中的redis-cluster一样,一个master抗不住写,那么就多个master去抗写),把一个队列的单一mas ...
- vsftpd[9183]: warning: can't get client address: Socket operation on non-socket
今天在linux redhat7.2下执行service vsftpd start一直不能开启vsftpd服务,本来怀疑SELINUX的问题(其他ftp下载问题可以看下我的另外一篇博客Linux下ft ...
- react 兄弟组件传值(发布订阅,使用于任何组件传值,包括vue)
react中兄弟组件传值常规操作一般是,A组件传给父组件,父组件再传给B组件 非常规操作 利用 pubsub-js 在Home组件内调用 PubSub.publish("第一个参数是事件名 ...