如何在Bash中将时间戳转换为日期?

我需要一个将Unix时间戳转换为日期的shell命令或脚本。 输入可以来自第一个参数或来自stdin,允许以下使用模式:

ts2date 1267619929

echo 1267619929 | ts2date

两个命令都应输出“Wed Mar 3 13:38:49 2010”。

12个解决方案

417 votes

在以后版本的常见Linux发行版中,您可以使用:

date -d @1267619929

a'r answered 2019-03-03T10:31:25Z

130 votes

date -r

在Mac OS X上适用于我。

rafaelzlisboa answered 2019-03-03T10:31:50Z

24 votes

这个版本类似于chiborg的答案,但它不需要外部tty和cat。它使用date,但可以轻松使用gawk.你可以更改shebang并用单个替换双方括号,这也将 在sh中运行。

#!/bin/bash

LANG=C

if [[ -z "$1" ]]

then

if [[ -p /dev/stdin ]] # input from a pipe

then

read -r p

else

echo "No timestamp given." >&2

exit

fi

else

p=$1

fi

date -d "@$p" +%c

Dennis Williamson answered 2019-03-03T10:32:16Z

13 votes

例如,您可以使用GNU日期

$ sec=1267619929

$ date -d "UTC 1970-01-01 $sec secs"

要么

$ date -ud @1267619929

ghostdog74 answered 2019-03-03T10:32:45Z

9 votes

你可以使用这个简单的awk脚本:

#!/bin/gawk -f

{ print strftime("%c", $0); }

样品用法:

$ echo '1098181096' | ./a.awk

Tue 19 Oct 2004 03:18:16 AM PDT

$

codaddict answered 2019-03-03T10:33:15Z

4 votes

我在转换日志文件或监视它们时使用它:

tail -f | gawk \

'{ printf strftime("%c", $1); for (i=2; i

user3544224 answered 2019-03-03T10:33:41Z

3 votes

我写了一个脚本,自己这样做:

#!/bin/bash

LANG=C

if [ -z "$1" ]; then

if [ "$(tty)" = "not a tty" ]; then

p=`cat`;

else

echo "No timestamp given."

exit

fi

else

p=$1

fi

echo $p | gawk '{ print strftime("%c", $0); }'

chiborg answered 2019-03-03T10:34:07Z

3 votes

在这个答案中,我复制了Dennis Williamson的答案并稍微修改它,以便在将许多时间戳的列传递给脚本时允许大幅提高速度。 例如,在我的机器上使用xargs -n1为原始脚本管道1000个时间戳需要6.929秒,而使用此修改版本需要0.027秒:

#!/bin/bash

LANG=C

if [[ -z "$1" ]]

then

if [[ -p /dev/stdin ]] # input from a pipe

then

cat - | gawk '{ print strftime("%c", $1); }'

else

echo "No timestamp given." >&2

exit

fi

else

date -d @$1 +%c

fi

webb answered 2019-03-03T10:34:36Z

2 votes

从Bash 4.2开始,您可以使用%c的man 3 strftime格式:

$ printf '%(%c)T\n' 1267619929

Wed 03 Mar 2010 01:38:49 PM CET

这很好,因为它是一个内置的shell。 datefmt的格式是%c接受的字符串(参见man 3 strftime)。 %c在这里:

%c当前的首选日期和时间表示             语言环境。

现在,如果您想要一个接受参数的脚本,如果没有提供,则读取stdin,您可以继续:

#!/bin/bash

if (($#)); then

printf '%(%c)T\n' "$@"

else

while read -r line; do

printf '%(%c)T\n' "$line"

done

fi

gniourf_gniourf answered 2019-03-03T10:35:28Z

2 votes

在OSX或BSD中,有一个等效的-r标志,显然需要一个unix时间戳。 这是一个运行日期四次的例子:第一次约会,显示它是什么; 一个用于转换为unix时间戳与%s,最后一个用-r转换为%s提供的字符串。

$ date; date +%s; date -r `date +%s`

Tue Oct 24 16:27:42 CDT 2017

1508880462

Tue Oct 24 16:27:42 CDT 2017

至少,似乎在我的机器上工作。

$ uname -a

Darwin XXX-XXXXXXXX 16.7.0 Darwin Kernel Version 16.7.0: Thu Jun 15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64 x86_64

Dan Farrell answered 2019-03-03T10:36:06Z

0 votes

一些例子:

$ date

Tue Mar 22 16:47:06 CST 2016

$ date -d "Tue Mar 22 16:47:06 CST 2016" "+%s"

1458636426

$ date +%s

1458636453

$ date -d @1458636426

Tue Mar 22 16:47:06 CST 2016

$ date --date='@1458636426'

Tue Mar 22 16:47:06 CST 2016

kai answered 2019-03-03T10:36:36Z

-7 votes

在PHP中

$unix_time = 1256571985;

echo date("Y-m-d H:i:s",$unix_time)

Lucas answered 2019-03-03T10:37:07Z

linux shell转换成时间,如何在Bash中将时间戳转换为日期?相关推荐

  1. pdf转换成html python,在Python中将pdf转换为html

    Python 2.6 我试图解析我的pdf文件,其中一种方法是将其转换为html并提取标题和段落. 所以,我尝试了pdf2htmlEX,它将我的pdf转换成html格式,而不干扰我的pdf格式...到 ...

  2. html把毫秒转换成年月日,如何使用JavaScript将毫秒转换为日期格式?

    给定一串毫秒数,如何使用JavaScript将它们转换为日期格式?下面本篇文章就来给大家介绍一下使用JavaScript将毫秒转换为日期格式的方法,希望对大家有所帮助. 方法1: ● 首先声明变量ti ...

  3. 如何在Java中将字符串转换为日期

    将Java(或任何编程语言)中的字符串转换为日期是一项基本技能,对于在项目上进行工作很有用.有时,使用字符串表示日期,然后将其转换为Date对象以供进一步使用是更容易的. 在本文中,我们将介绍许多可用 ...

  4. mysql指定时间转换成yyyy-mm-dd_如何在MySQL中将特定日期的MM / YY转换为YYYY-MM-DD?...

    要进行转换,请使用STR_TO_DATE(),如以下语法所示.将日值与CONCAT()-连接select str_to_date(concat('yourDateValue/', yourColumn ...

  5. 如何在Bash中将字符串转换为小写?

    bash中有一种方法可以将字符串转换为小写字符串? 例如,如果我有: a="Hi all" 我想将其转换为: "hi all" #1楼 如果使用v4,则已烘焙 ...

  6. python字符串转换成整数_在Python中将字符串转换为整数的方法

    在本文中,我们将向你展示如何将Python字符串转换为整数,可在Linux操作平台上进行.Python中的所有数据类型(包括整数和字符串)都是对象,通常在编写Python代码时,你需要将一种数据类型转 ...

  7. 带毫秒的字符转换成时间(DateTime)格式的通用方法

    C#自身有更好的方式,Net任意String格式转换为DateTime类型 ====================================================== 原文 ==== ...

  8. java 转换成时间戳_Java 实例 – 时间戳转换成时间 - Java 基础教程

    Java 实例 以下实例演示了如何使用 SimpleDateFormat 类的 format() 方法将时间戳转换成时间: Main.java 文件 import java.text.SimpleDa ...

  9. 时间戳转换成时间格式

    项目中,经常用到json格式的数据,时间类型的数据在json中往往以时间戳的形式传送,当,我们想要获取json数据中的时间数据的话,需要将时间戳转换成时间格式.我这里有两种转换时间戳的方法,分别为前台 ...

最新文章

  1. muduo:获取进程相关信息
  2. Java程序运行纳秒级差值计算
  3. 阿里开源软件替换指南
  4. ab flash player 8_FLASH 质子治疗的技术挑战
  5. mysql odbc.ini_ODBC连接mysql
  6. pop!_os_Pop!幕后花絮_OS Linux
  7. m5310模组数据上传至onenet_基于Semtech SX1276RF1KAS SPI模组及ATMEGA328架构下之烟雾气体感测方案...
  8. (1)鼠标单独移动两个actor
  9. 《算法设计与分析》黄宇编著 课后习题参考答案
  10. 爬取分析雪球网实盘用户数据
  11. php获取qq空间,使用php进行批量抓取QQ空间相册链接
  12. 〖Python 数据库开发实战 - Python与Redis交互篇⑮〗- 综合案例 - 新闻管理系统 - 更新所编辑新闻状态(根据输入内容进行保存操作)
  13. 颜色模型HSB-这么强大的工具,你居然还不知道?
  14. 导出https网站证书
  15. Linux 磁盘管理-配额管理-配置用户对磁盘进行指定大小或者文件数量的使用权限
  16. Windows下常用网络命令
  17. 小菜鸟之oracle数据字典
  18. java版仿拼多多Spring Cloud+SpringBoot+mybatis+uniapp b2b2c o2o 多商家入驻商城 直播带货商城 电子商务 拼团商城源码
  19. 【process.popen】
  20. 人工智能中的运筹学与最优化就该这样学之著名教材

热门文章

  1. pygame中文文档 四
  2. 【mimics基础中文版教程】
  3. 精细管理——CRM销售漏斗管理
  4. oracle 桌面安装步骤,Oracle安装:OUI安装Oracle(图形界面安装)
  5. 使用函数统计指定数字的个数
  6. 关于CNAS实验室认可你知道这些吗?
  7. 计算机应用能力提升,计算机应用能力提升培训课件.ppt
  8. 人像复古黑白调色效果lr预设
  9. du---查看文件夹大小-并按大小进行排序
  10. Nginx升级ssl版本