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

20150225102450990.jpg

将秒或分钟的值转换为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秒
	}
}


未经允许请勿转载:程序喵 » 【Java】数值类型分秒时间格式化为xx天xx小时xx分钟xx秒

点  赞 (0) 打  赏
分享到: