生信服务器 | 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 ...
随机推荐
- Spring 依赖注入有哪几种方式
1. 构造器注入 /*带参数,方便利用构造器进行注入*/ public CatDaoImpl(String message){ this. message = mess ...
- diyudio 3886 功放机鉴赏
- 一次Feign使用的案例
项目名称 projectName Maven架构 l ProjectName-项目名称,项目父工程 projectName-api-提供给外部组件使用的接口 common-一些基本共用的类.枚举常量 ...
- Redis(六)集群
Redis集群 1.1 存在的问题 容量不够Redis如何扩容 并发写操作,Redis如何分摊 当主机或者从机宕机,薪火相传.反客为主等主从模式都会导致ip发生变化,应用程序中的配置需要对应修改主机地 ...
- 23.04.06_为博客设置https
title: 为博客设置https协议 categories: - 博客优化 date: 2023-04-06 url_dir: Blog_optimization url_name: setting ...
- 如何玩转国产神器:接口一体化协作平台Apifox!
前言:Apifox是什么? 简介: 简单来说,Apifox = swagger + mock + postman+Jmeter,是API 文档.API 调试.API Mock.API 自动化测试一体化 ...
- If选择语句的用法
今天我们学习下If判断语句. 首先了解下它有几种用法: If单选择语句 If双选择语句 If多选择语句 我们一个一个用,每一个用法都给一个运用的过程演练一下. If单选择语句:我们很多需要判断一个东西 ...
- Nacos注册中心
介绍 Nacos是SpringCloudAlibaba的组件,而SpringCloudAlibaba也遵循SpringCloud中定义的服务注册.服务发现规范.因此使用Nacos和使用Eureka对于 ...
- 21-HMR
/* HMR:hot module replacement 热模块替换 / 模块热替换 作用:一个模块发生变化,只会重新打包这一个模块(而不是打包所有模块) 极大提升构建速度 样式文件:可以使用HMR ...
- 15-js语法检查eslint
const { resolve } = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); modul ...