TimeUtil.java 3.35 KB
package com.sw.laryngoscope.utils;

import android.content.Context;
import android.text.format.DateFormat;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

/**
 * 日志相关类:默认是测试环境<br>
 * <b>支持:存储Log日志文件到本地。发送Log日志信息到服务器</b>
 *
 * @author
 * @since 2018-6-18 12:38:39
 */
public class TimeUtil {
    private static Context context;
    private static String time24Format = "HH:mm";//"hh:mm:ss";
    private static String time12Format = "hh:mm";//"HH:mm:ss";
    private static String time24Formats = "HH:mm:ss";//"hh:mm:ss";
    private static String time12Formats = "hh:mm:ss";//"HH:mm:ss";

    public static void init(Context mContext) {
        context = mContext;
    }

    public static String timeStamp2ZoneHm(long time) {
        String ret;
        Calendar mTime;
        mTime = Calendar.getInstance();
        mTime.setTimeInMillis(time);
        if ( DateFormat.is24HourFormat(context) ) {
            ret = DateFormat.format(time24Format, mTime).toString();
        } else {
            ret = DateFormat.format(time12Format, mTime).toString();
        }
        return ret;
    }

    public static String timeStamp2ZoneHms(long time) {
        String ret;
        Calendar mTime;
        mTime = Calendar.getInstance();
        mTime.setTimeInMillis(time);
        if ( DateFormat.is24HourFormat(context) ) {
            ret = DateFormat.format(time24Formats, mTime).toString();
        } else {
            ret = DateFormat.format(time12Formats, mTime).toString();
        }
        return ret;
    }

    public static String timeStamp2ZoneTime(long time, String format) {
        if (format == null || format.isEmpty()) {
            format = "yyyy-MM-dd HH:mm:ss";
        }
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        sdf.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
        return sdf.format(new Date(time));
    }

    public static String millisecondToTimeString(long milliSeconds, boolean displayCentiSeconds) {
        long seconds = milliSeconds / 1000; // round down to compute seconds
        long minutes = seconds / 60;
        long hours = minutes / 60;
        long remainderMinutes = minutes - (hours * 60);
        long remainderSeconds = seconds - (minutes * 60);

        StringBuilder timeStringBuilder = new StringBuilder();

        // Hours
        if (hours > 0) {
            if (hours < 10) {
                timeStringBuilder.append('0');
            }
            timeStringBuilder.append(hours);

            timeStringBuilder.append(':');
        }

        // Minutes
        if (remainderMinutes < 10) {
            timeStringBuilder.append('0');
        }
        timeStringBuilder.append(remainderMinutes);
        timeStringBuilder.append(':');

        // Seconds
        if (remainderSeconds < 10) {
            timeStringBuilder.append('0');
        }
        timeStringBuilder.append(remainderSeconds);

        // Centi seconds
        if (displayCentiSeconds) {
            timeStringBuilder.append('.');
            long remainderCentiSeconds = (milliSeconds - seconds * 1000) / 10;
            if (remainderCentiSeconds < 10) {
                timeStringBuilder.append('0');
            }
            timeStringBuilder.append(remainderCentiSeconds);
        }

        return timeStringBuilder.toString();
    }
 
}