最近在做项目时有个发送消息限制需求:每个用户一天最多发送10条消息,超过10条后台给出剩余时长提示。后台在发送第一条消息时在redis写入标识,同时设置24小时有效器,超过10条时可以获取redis剩余过期时长,但从redis获取到的剩余时长单位是秒,需要转环境成“XX时XX分XX秒”。
结合common-lang包的format方法,先将秒 * 1000 转换成毫秒,在转换时设置时区为0时区,即可得到需要的结果。代码如下:
//过期时间(秒)
long expired = 1000l;
String format = DateFormatUtils.format(expired * 1000, "HH时mm分ss秒", TimeZone.getTimeZone("GMT+0:00"));
format = format.replace("00时", "").replace("00分", "");