将纪元时间转换为文件中的 dd/mm/yy [关闭]

Posted

技术标签:

【中文标题】将纪元时间转换为文件中的 dd/mm/yy [关闭]【英文标题】:convert epoch time into dd/mm/yy in a file [closed] 【发布时间】:2015-04-04 00:58:17 【问题描述】:

在一个文件中我有n 纪元次数。

我必须将每个纪元时间转换为 dd/mm/yy 格式。

例如:file1 内容:

1 aaa 1322625862.408 
2 bbb 1322625848.954
3 ccc 1322625843.908
4 ddd 1322625865.436

现在我想转换这个纪元时间。

【问题讨论】:

阐明你的输出应该是什么样子 【参考方案1】:

read 与虚拟参数一起使用并仅获取您想要的参数会更容易:

while read _ _ epoch
do
   date -d@"$epoch" "+%d/%m/%y"
done < file

这样,每行的第三个单词被存储到$epoch。然后,您使用date -d@XXX 将纪元转换为普通时间戳。请记住,您可以使用"+%Y%m..." 等设置格式。

测试

$ while read _ _ epoch; do date -d@$epoch "+%d/%m/%y"; done < a
30/11/11
30/11/11
30/11/11
30/11/11

【讨论】:

不错。从来没有想过用这种方式做事。 你为什么使用 read _ _ epoch?? @Jaquelinefernadas 因为它们的值不是必需的,我们只需要$epoch @Jaquelinefernadas _ 常用来表示“我不关心这个值”【参考方案2】:

你可以使用date:

reut@EliteBook-8470p:~/$ for epoch in $(cat f.txt | cut -d' ' -f 3); do date -d @$epoch +%d/%m/%y; done

管道演练:

$(cat f.txt | cut -d' ' -f 3) 将由' ' 分割的每一行中的第三列作为 dlimiter。这是您拥有的纪元字符串。

现在使用其中的每一个(使用for 循环)作为date -d @&lt;eopch&gt; 的参数并将格式设置为%d/%m/%y

输出:

30/11/11
30/11/11
30/11/11
30/11/11

编辑:将其实际存储在结果文件中:

while read serial name tdate; do echo $serial $name $(date -d@"$tdate" "+%d/%m/%y") >> result_file; done < your_file.txt

现在您的输出在结果文件中。

result_file 中的输出:

1 aaa 30/11/11
2 bbb 30/11/11
3 ccc 30/11/11
4 ddd 30/11/11

感谢@fedorqui。

【讨论】:

我必须以序列号、名称、日期格式再次将日期存储在该文件中.. @Jaquelinefernadas 查看编辑【参考方案3】:

您没有指定,但我相信您需要 Linux 命令。 如果您想从文件中解析它,请执行以下操作:

for i in `awk 'print $2' kuku `; do
date -d @$i +"%d/%m/%y"
done

它只是从文件中获取带有时间戳的相关列,然后执行 日期 -d @ +"%d/%m/%y"

输出:

30/11/11
30/11/11
30/11/11
30/11/11

希望对你有所帮助

【讨论】:

以上是关于将纪元时间转换为文件中的 dd/mm/yy [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Pandas - 将日期列从 dd/mm/yy hh:mm:ss 转换为 yyyy-mm-dd hh:mm:ss

SQL日期格式转换? [dd.mm.yy 到 YYYY-MM-DD]

Excel 日期值检索为 DD/MM/YY,如何将其格式化为 YYYY-MM-DD?

在java中将dateTime转换为dd/MM/yy格式的日期

如何将报告的输入参数默认改为“DD-MM-YY”,输入为“d / M / y”我必须通过inout参数进行选择查询

SQL中如何将数值格式的20110801(2011年8月01日)转换为日期格式的201108或者2011-08?