在Julia中,将经过时间转换为小时:分钟:秒

时间:2018-09-17 04:24:11

标签: julia

使用Python here有多种方法可以将秒转换为Hours:Minutes:Seconds。

在朱莉娅(Julia)中如何做到这一点?

2 个答案:

答案 0 :(得分:2)

方法1:

此代码遵循原始问题链接中的Brandon Rhodes用Python回答。它回答了原始问题。

优势:简单性。

缺点:对于长时间的模拟运行,输出的格式设置不如此后给出的方法那么好。

using Printf

start = time()
sleep(65.129)  # 65.129 seconds
elapsed = time() - start

(minutes, seconds) = fldmod(elapsed, 60)
(hours, minutes) = fldmod(minutes, 60)

@printf("%02d:%02d:%0.2f", hours, minutes, seconds)

"""========== The expected output is ==========
00:01:5.16
"""

方法2

@crstnbr使用canonacalize函数解决了类似的问题。我没有在Julia 1.0.0文档中看到它,但是在Julia源中找到它是链接的here

它具有整洁的特性,可以优雅地处理短时间段和长时间段。

优势:为长时间运行提供有用的格式。

缺点:当前的Julia 1.0.0文档中似乎没有,可能很难记住。

julia> start = now(); sleep(1.23); elapsed = now() - start;
julia> canonicalize(Dates.CompoundPeriod(elapsed))
1 second, 246 milliseconds

julia> canonicalize(Dates.CompoundPeriod(elapsed*1000000))
2 weeks, 10 hours, 6 minutes, 40 seconds

如果您要进行长时间的模拟,这可能会有所帮助。

答案 1 :(得分:1)

并不是您真正要求的,但也许仍然有用:

julia> using Dates

julia> start = now(); sleep(1.23); elapsed = now() - start;

julia> canonicalize(Dates.CompoundPeriod(elapsed))
1 second, 231 milliseconds

请参见https://discourse.julialang.org/t/conversion-and-formatting-of-dates-timeperiod/15063