使用Python here有多种方法可以将秒转换为Hours:Minutes:Seconds。
在朱莉娅(Julia)中如何做到这一点?
答案 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。