linux 计算unix中两个不同列的两个日期(YYYY-DD-MM HH:MM:SS格式)之间的天数差[已关闭]

ifmq2ha2  于 2022-12-26  发布在  Linux
关注(0)|答案(1)|浏览(130)

昨天关门了。
社区正在审查是否从昨天开始重新讨论这个问题。
Improve this question
我有两列包含YYYY-DD-MM HH:MM:SS格式的日期的tsv文件。
我想计算这些日期之间的天数差(作为截断整数)
例如:
输入:

column1                             column2    
2013-04-26 12:38:33              2013-04-27 12:38:33.757    
2019-06-07 17:46:02.543          2019-06-27 22:46:02.543   
2013-02-06 12:38:33              2013-02-18 22:50:50

输出:
1
20
12
我试过第1列和第2列的日期

gawk -F "\t" '
  {print$0 "\t" 
    split($1,a,"-" || ":" ); 
    split($2,b,"-" || ":" ); 
    t1 = mktime(sprintf("%d %d %d 0 0 0 0",a[1],a[2],a[3])); 
    t2 = mktime(sprintf("%d %d %d 0 0 0 0",b[1],b[2],b[3])); 
    print (t2-t1)/86400
  }'

但是我得到了一个奇怪的数字,它没有反映出准确的时差。

jobtbby3

jobtbby31#

我猜你是指一个.csv文件(逗号分隔值)?我会使用R来做这件事。如果你安装R(它是一个免费的啤酒下载),你应该得到它的Rscript命令,然后你可以使用as.Date()方法,并从命令行或脚本来完成这件事

Rscript -e 'as.Date("2013-04-27 12:38:33.757") - as.Date("2013-04-26 12:38:33")'
Time difference of 1 days

处理日期和时间差异是极其复杂的。

相关问题