【问题标题】:Gnuplot prints a strange year, 30 years later30 年后,Gnuplot 打印出一个奇怪的年份
【发布时间】:2016-01-19 06:16:22
【问题描述】:

当我打印时间 gnuplot 时,我遇到了 gnuplot 的下一个问题 打印时间+30年。

这是我数据的一部分:

1411336800,1390,0,0,0,10,1411,0,10,0,0,0,0,0,1411
1411340400,1506,0,0,0,10,969,0,10,0,0,0,0,0,969
1411344000,1115,0,0,0,10,1108,0,10,0,0,0,0,0,1108
1411347600,719,0,0,0,10,712,0,10,0,0,0,0,0,712  

脚本的一部分是:

set timefmt "%s"
stats "<tail -1 uur.txt " using 1:2 nooutput
tijd = strftime("%d %B %Y %H:%M", STATS_max_x)
print tijd   

然后 gnuplot 打印:2044 年 9 月 21 日 01:00。 44 ?

有人知道吗?

我尝试了几种格式,但没有任何帮助。

【问题讨论】:

    标签: date time gnuplot


    【解决方案1】:

    直到 4.6 版,gnuplot 在内部使用 2000 年 1 月 1 日作为其日期和时间函数的参考(在 5.0 版中使用标准 Unix 时间戳)。

    如果您绘制数据,set timefmt "%s" 应该不会有任何问题。但是当使用strftime 时,它会有所不同。既然你无论如何都在使用tail,你可以简单地使用

    tijd = system('date -d @$(tail -1 uur.txt | cut -d, -f1) +"%d %B %Y %H:%M"')
    print tijd
    

    【讨论】:

    • 几乎难以置信你知道这些细节。效果很好,非常非常非常感谢!
    • 另一个小问题,现在年份不错,但时间不同。时间必须是 20:00,但 gnuplot 会打印 22:00。有什么想法吗?
    • 我读了你的链接。您知道如何在您的第一个解决方案中实现这一点吗?我不知道...
    • 那么您的数据可能保存为 UTC 并且 date 使用您的本地时区。尝试使用date -u -d ...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-05
    • 1970-01-01
    相关资源
    最近更新 更多