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