gpt4 book ai didi

java - 将字符串转换为毫秒

转载 作者:行者123 更新时间:2023-12-01 18:27:07 25 4
gpt4 key购买 nike

如何将字符串转换为秒?

我希望它支持无限数量的零件(“10m”、“5s”是零件)

例如:

“10秒”> 10

“10米5秒”> 605

“1小时1分1秒”> 3661

所有类型的数据

s > 秒

米 > 分钟

h > 小时

d > 天

周 > 周

M > 个月(大写)

y > 年

编辑:

尝试了一些代码,当输入“1s”时返回“34822861”,其中时间是字符串。

    Long mil = 0L;
Matcher matcher = Pattern.compile("\\d+\\D+").matcher(time);
while (matcher.find()) {
String s = matcher.group();
Long numb = Long.parseLong(s.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)")[0]);
String type = s.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)")[1];
switch(type){
case "s":
mil = mil + (numb);
case "m":
mil = mil + (numb * 60);
case "h":
mil = mil + (numb * 60 * 60);
case "d":
mil = mil + (numb * 60 * 60 * 24);
case "w":
mil = mil + (numb * 60 * 60 * 24 * 7);
case "M":
mil = mil + (numb * 60 * 60 * 24 * 30);
case "y":
mil = mil + (numb * 60 * 60 * 24 * 365);
}
}

最佳答案

不要重新发明轮子。

ISO 8601

ISO 8601标准定义了日期时间值的各种字符串格式。一种这样的格式是 DurationsPnYnMnDTnHnMnST 将日期部分与时间部分分开。例如,“P3Y6M4DT12H30M5S”表示持续时间“三年六个月四天十二小时三十分钟五秒”。

每个 block 都是可选的,例如半小时的PT30M

乔达时间

两者都是Joda-Time图书馆和java.time package (在 Java 8 中捆绑)使用 ISO 8601 作为解析和生成日期时间值的字符串表示形式的默认值。这包括 PnYnMnDTnHnMnS 格式。

Joda-Time 提供了三个用于处理时间跨度的类:Interval , Period ,和 Duration 。 (请注意,这些术语没有标准化,并且在不同的上下文中使用不同的方式。)

搜索 StackOverflow

搜索 Stackoverflow 可找到有关这些主题的数百个答案。

关于java - 将字符串转换为毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25673858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com