Как преобразовать массив в миллисекундах в формат MM: SS: ss или DateTime в Julia? - PullRequest
1 голос
/ 25 июня 2019

Я пытаюсь преобразовать миллисекунды в минуты, но не могу этого сделать. Я ожидал результата в виде ММ: СС Я сохранил свои результаты в кадре данных, который показывает тип данных в миллисекундах, и даже когда я делю всю строку на 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
.
.
.

Ответы [ 2 ]

1 голос
/ 25 июня 2019

Вы можете конвертировать 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 и он будет «обтекать» 24 часа.Если вы хотите избежать переноса, используйте DateTime вместо Time выше.

0 голосов
/ 26 июня 2019

Большое спасибо за помощь.Вы решили большую часть моей проблемы.Я довольно наивен, но у Юлии началась неделя назад.Я фактически использовал - 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

...