本文主要是介绍java Duration格式规范化 自定义时间单位类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先 我在配置文件 application.yml 中 配置了一个textdata
里面声明了一个time 用来记录服务器超时时间
然后 我们在属性类中 读取这个属性
这里 我们声明 读取配置文件中的 textdata属性 来填充我们的 textData类中的两个属性 并声明get set函数
然后重写了 toString 函数 方便大家打印观察
最后 我们条件装配 并输出这个类
但是呢 这个时间单位 存在一定争议
time -1 自然是没什么好说的 负一代表永不超时
但是 如果我们写个3 那么 可能就会有误会 是 3秒 还是 3分钟 又或者是 3小时?
这里 我们将代码改成这样
package com.example.webdom.domain;import org.springframework.boot.context.properties.ConfigurationProperties;import java.time.Duration;@ConfigurationProperties("textdata")
public class textData {private long time;private String uniTs;private Duration serverTimeOut;public long getTime() {return time;}public String getUniTs() {return uniTs;}public Duration getServerTimeOut() {return serverTimeOut;}public void setTime(long time) {this.time = time;}public void setUniTs(String uniTs) {this.uniTs = uniTs;}public void setServerTimeOut(Duration serverTimeOut) {this.serverTimeOut = serverTimeOut;}@Overridepublic String toString() {return "textData{" +"time=" + time +", units='" + uniTs + '\'' +", serverTimeOut='" + serverTimeOut + '\'' +'}';}
}
炸了 我声明了一个 Duration 类型的值 叫 serverTimeOut
定义了他的 get set函数 然后 在toString上加上了它的输出
然后在 application.yml 配置文件上加上它的配置
又是一个3 那就还是同一个问题 是 3 秒 还是 3分钟 还是3小时呢?
别急 我们先运行看看
serverTimeOut的格式发生了一些变化
PT 这是它的标准单位
最后的 s 代表秒
0.003
千分之三
这里 计算过来 就是 3毫秒
通常你用 long 描述时间 大部分做过的java工程师 也会按毫秒去读
但是这种就更强调了格式
避免了出现争议或误会
重要的是 我们可以自定义他的单位
我们在声明变量的上面 写上 @DurationUnit(ChronoUnit.) 提示中就会出现各种时间单位
这里 我们来个小时 HOURS
我们再次运行 他就变成了 一个 3H的单位
这篇关于java Duration格式规范化 自定义时间单位类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!