1
4

1 回答 1

1

如何从以秒为单位的 unix 时间到 ISO-8601 格式的日期时间?

      'date' 'days'⎕CY'dfns'
      unix0←days 1970 1 1
      sPerDay←24×60×60
      UnixToTs←date unix0+÷∘sPerDay
      TsToIso←{'--T::'@(2+3×⍳5)∊⍕¨(⊃,100+1∘↓)6↑⍵}   ⍝ modified from aplcart.info?q=iso8601
      UnixToIso←TsToIso UnixToTs
      UnixToIso 1580490155
2020-01-31T17:02:35

在线尝试!

为了您的方便,下面是相反的:

      IsoToTs←⍎¨∊∘⎕D⊆⊢
      TsToUnix←sPerDay×unix0-⍨days
      IsoToUnix←TsToUnix IsoToTs
      IsoToUnix '2020-01-31T17:02:35'
1580490155

在线尝试!


使用正则表达式获取 unix 时间

如果您的文件是一致的,我建议使用 APL 来提取数据,因为它可以产生巨大的速度差异。例如,如果所有行都使用这种精确格式:

      v←(⍎¯10↑43∘↑)¨⊃⎕NGET'/Users/ludo/Desktop/so/ping.txt' 1
      DISPLAY v
┌→────────────────────┐
│1580490155 1580490214│
└~────────────────────┘

为什么 [] 和 ⊃ 的使用之间的排名差异?

[…<code>] 从不公开(“打开”)它从数组中提取的元素,因此嵌套数组的元素保持封闭。

我们是否在一种情况下有一个向量,在另一种情况下有一个简单的字符串(标量)?

是的,尽管在一种情况下最好将其表述为向量,而在另一种情况下将其表述为封闭向量。

为什么 ⍴⍴v[1] 为零?

因为标量的秩(即使它包含更高秩的数组)为零。

于 2020-02-02T08:12:53.477 回答