如何从朱莉娅的字符串中解析“持续时间”类型?

问题描述 投票:0回答:1
减去朱莉娅中两个

DateTime

对象的结果是某种持续时间对象。
将其运用在替补中,我发现返回的类型是“毫秒”类型,我认为这是

Dates.Millisecond

。 我正在尝试编写一个可以用来指定某些持续时间值的配置文件。

DateTime

可以从字符串中解析值,但我不确定如何解析“持续时间”类型,甚至我应该选择哪种“持续时间”类型。

对于上下文,持续时间值通常为小时数分钟。例如“ 9小时30分钟”。 (尽管没有此精确的字符串表示。)“ 09:30”或“ 9H30”可能是更明智的字符串表示。 julia日期软件包中有多种“持续时间”。我遇到的最常见的是

Millisecond

持续时间,

Dates.Period

Dates.CompoundPeriod

。 我不确定最明智的方法是什么。要求用户输入多个毫秒显然不是一个非常用户友好的解决方案。虽然我可以解析整数值并将其转换为

Millisecond

,但这似乎不是一种非常明智的方法。

	
sask对于像
HH:MM:SS
一样格式化的时间字符串,将其附加到已知的日期字符串中,将其解析为
DateTime

,然后减去原始日期。 (或者只是使用正直,但这更有趣。)

julia> function parse_time(s)
           base_date = DateTime(2000)
           base_date_str = Dates.format(base_date, dateformat"yyyy-mm-dd")
           datetime_str = "$base_date_str $s"
       
           num_colons = count(':', s)
           datetime_fmt = if num_colons == 1
               dateformat"yyyy-mm-dd HH:MM"
           elseif num_colons == 2
               dateformat"yyyy-mm-dd HH:MM:SS"
           else
               error("unrecognized time format in $(s)")
           end
       
           datetime = DateTime(datetime_str, datetime_fmt)
           return datetime - base_date
       end
parse_time (generic function with 1 method)

julia> println(parse_time("1:23"))
4980000 milliseconds

julia> println(parse_time("12:34:56"))
45296000 milliseconds

julia
1个回答
0
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.