将纪元时间转换为文件中的 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 @<eopch>
的参数并将格式设置为%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格式的日期