相当于朱莉娅的gmtime?

时间:2015-03-15 04:14:38

标签: time timezone julia strftime

Julia将strftime作为内置内容但不是gmtime

julia> strftime
strftime (generic function with 3 methods)

julia> gmtime
ERROR: gmtime not defined

相同的gmtime,首选的Julia方式是什么?我们的想法是将自纪元以来的秒数转换为Z(+00:00)时区的时间结构。在洛杉矶,我看到:

julia> strftime("%H:%M:%S", 0)
"16:00:00"

我希望看到"00:00:00"。我可以用Python做到这一点:

>>> from time import strftime, gmtime
>>> strftime("%H:%M:%S", gmtime(0))
'00:00:00'

我尝试在朱莉娅中使用ccall,但它不起作用

julia> ccall( (:gmtime, "libc"), TmStruct, (Int64,), 0)
TmStruct(1590498096,32767,16041550,1,-1924564896,32744,1,0,0,0,0,0,1590498144,32767)

julia> strftime("%H:%M:%S", ans)
"16041550:32767:1590498096"

我的ccall出了什么问题?更好的是,有没有更好的全朱莉娅方式来获得gmtime的效果?

1 个答案:

答案 0 :(得分:4)

看起来gmtime位于Julia的TODO列表中。直到它被包括在内,这样的东西能为你工作吗?

julia> function gmtime(t::Real)
           t = floor(t)
           tm = TmStruct()
           ccall(:gmtime_r, Ptr{TmStruct}, (Ptr{Int}, Ptr{TmStruct}), &t, &tm)
           return tm
       end
gmtime (generic function with 1 method)

julia> strftime("%H:%M:%S", gmtime(0))
"00:00:00"