Tibco Spotfire - 以秒和毫秒为单位的实时时间,转换为一天中的时间

Tibco Spotfire - time in seconds & milliseconds in Real, convert to a time of day

我有一个以秒为单位的十进制格式的时间列表,我知道该系列是什么时候开始的。我想将它转换为一天中的时间,并应用开始时间的偏移量。必须有一个简单的方法来做到这一点,我真的很想念!

示例源数据:

\Name of source file : 260521-11_58 \Recording from 26.05.2021 11:58 \Channels : 1 \Scan rate : 101 ms = 0.101 sec \Variable 1: n1(rpm) \Internal identifier: 63 \Information1: \Information2: \Information3: \Information4: 0.00000 3722.35645
0.10100 3751.06445
0.20200 1868.33350
0.30300 1868.36487
0.40400 3722.39355
0.50500 3722.51831
0.60600 3722.50464
0.70700 3722.32446
0.80800 3722.34277
0.90900 3722.47729
1.01000 3722.74048
1.11100 3722.66650
1.21200 3722.39355
1.31300 3751.02710
1.41400 1868.27539
1.51500 3722.49097
1.61600 3750.93286
1.71700 1868.30334
1.81800 3722.29224

开始时间和日期是 26.05.2021 11:58,LH 列是经过的时间(以秒为单位),列名称为 [Time]。所以我只想将小数/实数转换为时间或时间跨度,并将开始时间添加到其中。

我已经尝试了很多非常老套的方法,但最终还是有缺陷 - 下面的方法有效,但只是忽略了毫秒数。

TimeSpan(0,0,0,Integer(Floor([Time])),[Time] - Integer(Floor([Time])))

最后一部分仅用于获取毫秒/微秒,而不是上面的一部分。

您的公式并没有真正忽略毫秒,您将时间的小数部分(以秒为单位)用作毫秒,因此返回的值小于格式掩码。

您需要将秒数转换为毫秒数,所以像这样的东西应该可以工作

TimeSpan(0,0,0,Integer(Floor([Time])),([Time] - Integer(Floor([Time]))) * 1000)

把它加到时间里,这样行

DateAdd(Date("26-May-2021"),TimeSpan(0,0,0,Integer([Time]),([Time] - Integer([Time])) * 1000))

您需要将列格式设置为

dd-MMM-yyyy HH:mm:ss:fff