簡體   English   中英

將諸如“10s”或“10h”之類的字符串轉換為 Duration

[英]Convert a string like "10s" or "10h" to Duration

我嘗試解析 Duration 標題中提到的字符串或類似的內容。 諸如Duration.parse()之類的東西無法按照我希望的方式工作。

給出了像“10s”或“10h”這樣的字符串。 我需要一個解決方案,使用該字符串,並將其轉換為類似Duration或類似的東西。

編輯:為了澄清我的需求:我不想將“類似持續時間”的字符串與“PTxxx”一起使用,也不想自己解析這些字符串。 某處應該有一個已經實施的解決方案,恕我直言。

有任何想法嗎?

你檢查過文檔嗎? 以下是如何使用Duration.parse()

例子:

 "PT20.345S" -- parses as "20.345 seconds" "PT15M" -- parses as "15 minutes" (where a minute is 60 seconds) "PT10H" -- parses as "10 hours" (where an hour is 3600 seconds) "P2D" -- parses as "2 days" (where a day is 24 hours or 86400 seconds) "P2DT3H4M" -- parses as "2 days, 3 hours and 4 minutes" "P-6H3M" -- parses as "-6 hours and +3 minutes" "-P6H3M" -- parses as "-6 hours and -3 minutes" "-P-6H+3M" -- parses as "+6 hours and -3 minutes"

因此,如果您想要 10 秒的持續時間,則Duration.parse("PT10S")Duration.parse("PT10H")為 10 小時。

https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html#parse-java.lang.CharSequence-

    Duration tenSec = Duration.parse("PT10s");
    Duration tenHours = Duration.parse("PT10h");

org.springframework.boot.convert.DurationStyle就是你要找的。

DurationStyle.detectAndParse("10s")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM