如何在 Julia 中将毫秒数组转换为 MM:SS:ss 格式或 DateTime 格式?

How to convert Milliseconds array to MM:SS:ss format or DateTime format in Julia?

我正在尝试将毫秒转换为分钟,但无法这样做。我一直期待结果的形式 MM:SS 我已将结果保存在一个数据框中,该数据框将数据类型显示为毫秒,即使我将整行除以 60000,数据类型仍然是毫秒

delivery_time = delivery_timestamp - init_timestamp
783358-element Array{Millisecond,1}:
 34200000 milliseconds
 14580000 milliseconds
 27300000 milliseconds
 9180000 milliseconds 
 13560000 milliseconds
 6960000 milliseconds 
 12600000 milliseconds
 9600000 milliseconds 
 7500000 milliseconds 
 13080000 milliseconds
 9180000 milliseconds 
 9600000 milliseconds 
 27660000 milliseconds
 ⋮                    

delivery_time = (delivery_time)/60000
783358-element Array{Millisecond,1}:
 570 milliseconds
 243 milliseconds
 455 milliseconds
 153 milliseconds
 226 milliseconds
 116 milliseconds
 210 milliseconds
 160 milliseconds
 125 milliseconds
 218 milliseconds
 153 milliseconds

我期待结果

df.delivery_time
06:22
07:32
09:51
.
.
.

或者即使我能得到结果

df.delivery_time
570 minute
243 minute
455 minute
.
.
.

您可以将 Millisecond 转换为例如。 Minute 仅丢失精度。这是一个四舍五入到最近的分钟的例子:

@. Minute(round(Int, Dates.value(delivery_time) / (1000 * 60)))

如果您不需要 Minute 值而只是简单地浮动而不四舍五入,您可以这样做:

@. Dates.value(delivery_time) / (1000 * 60)

或例如

Dates.value.(delivery_time) / (1000 * 60)

如果您不想使用 @.

终于可以写了

Time(0) .+ delivery_time

这是无损的,但现在返回的对象不是 Period 的子类型,它将 "wrap around" 24 小时。如果您想避免换行,请使用 DateTime 而不是上面的 Time

非常感谢您的帮助。你解决了我的大部分问题。我很天真,但在朱莉娅一周前就开始了。 我实际上用过 - df.delivery_time = map((x) -> convert(Time,x),df[:15]) 结果是 783358-element Array{Time,1}: 09:30:00 04:03:00 07:35:00 02:33:00 03:46:00 01:56:00