【Java】数值类型分秒时间格式化为xx天xx小时xx分钟xx秒

将秒或分钟的值转换为xx天xx小时xx分钟xx秒 如果 “xx” 为0 自动缺省

import java.util.concurrent.TimeUnit;

public class DateUtils {

    private static final String[] UNIT_DESC = new String[]{"天", "小时", "分钟", "秒"};

    /**
     * 格式化持续时间<br/>
     * 将持续时间,格式化为 xx天xx小时xx分钟xx秒 如果 "xx" 为0 自动缺省。
     *
     * @param seconds 持续时间,单位(分钟)
     * @return 格式化后的字符串
     * @see TimeUnit 时间单位转换工具
     */
    public static String convertMinute2Str(long minute) {
        StringBuilder sb = new StringBuilder();
        long[] date = {TimeUnit.SECONDS.toHours(minute) % 24,TimeUnit.SECONDS.toMinutes(minute) % 60, TimeUnit.SECONDS.toSeconds(minute) % 60};
        for (int i = 0; i < date.length; i++) {
            long l = date[i];
            if (l > 0) sb.append(l).append(UNIT_DESC[i]);
        }
        return sb.toString();
    }
    
    /** 格式化持续时间<br/>
     * 将持续时间,格式化为 xx天xx小时xx分钟xx秒 如果 "xx" 为0 自动缺省。
     *
     * @param seconds 持续时间,单位(秒)
     * @return 格式化后的字符串
     * @see TimeUnit 时间单位转换工具
     */
    public static String convertSeconds2Str(long seconds) {
        StringBuilder sb = new StringBuilder();
        long[] date = {TimeUnit.SECONDS.toDays(seconds), TimeUnit.SECONDS.toHours(seconds) % 24, TimeUnit.SECONDS.toMinutes(seconds) % 60, TimeUnit.SECONDS.toSeconds(seconds) % 60};
        for (int i = 0; i < date.length; i++) {
            long l = date[i];
            if (l > 0) sb.append(l).append(UNIT_DESC[i]);
        }
        return sb.toString();
    }
    
    public static void main(String[] args) {
		System.out.println(convertMinute2Str(140));     // 2小时20分钟
		System.out.println(convertSeconds2Str(33680));  // 9小时21分钟20秒
	}
}


赞(52) 打赏
未经允许不得转载:优客志 » JAVA开发
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏