1. 程式人生 > >Android開發 時間戳轉換工具類

Android開發 時間戳轉換工具類

package com.shangyi.common.util;


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;


public class DateUtils {
    /**
     * 掉此方法輸入所要轉換的時間輸入例如("2016年6月16日17時24分24秒")返回時間戳
     * 
     * @param time
     * @return
     */
    public String data(String time) {
            SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH時mm分ss秒",
                            Locale.CHINA);
            Date date;
            String times = null;
            try {
                    date = sdr.parse(time);
                    long l = date.getTime();
                    String stf = String.valueOf(l);
                    times = stf.substring(0, 10);
//                    Log.d("--444444---", times);
            } catch (ParseException e) {
                    e.printStackTrace();
            }
            return times;
    }


    /**
     * 掉此方法輸入所要轉換的時間輸入例如("2016-6-16 17:23:51")返回時間戳
     * 
     * @param time
     * @return
     */
    public String dataOne(String time) {
            SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss",
                            Locale.CHINA);
            Date date;
            String times = null;
            try {
                    date = sdr.parse(time);
                    long l = date.getTime();
                    String stf = String.valueOf(l);
                    times = stf.substring(0, 10);
//                    Log.d("--444444---", times);
            } catch (ParseException e) {
                    e.printStackTrace();
            }
            return times;
    }


    public static String getTimestamp(String time, String type) {
            SimpleDateFormat sdr = new SimpleDateFormat(type, Locale.CHINA);
            Date date;
            String times = null;
            try {
                    date = sdr.parse(time);
                    long l = date.getTime();
                    String stf = String.valueOf(l);
                    times = stf.substring(0, 10);
//                    Log.d("--444444---", times);
            } catch (ParseException e) {
                    e.printStackTrace();
            }
            return times;
    }


    /**
     * 呼叫此方法輸入所要轉換的時間戳輸入例如(1466068914)輸出("2016年6月16日 17時21分54秒")
     * 
     * @param time
     * @return
     */
    public String times(String time) {
            SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH時mm分ss秒");
            @SuppressWarnings("unused")
            long lcc = Long.valueOf(time);
            int i = Integer.parseInt(time);
            String times = sdr.format(new Date(i * 1000L));
            return times;


    }
    /**
     * 呼叫此方法輸入所要轉換的時間戳輸入例如(1402733340)輸出("2016年6月16日 17時21分54秒")
     * 
     * @param time
     * @return
     */
    public String timet(String time) {
            SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH時mm分");
            @SuppressWarnings("unused")
            long lcc = Long.valueOf(time);
            int i = Integer.parseInt(time);
            String times = sdr.format(new Date(i * 1000L));
            return times;
            
    }
    /**
     * 輸入時間戳轉為日期
     * @param time
     * @return
     */
    public static  String toDate(String time) {
    SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日");
    long lcc = Long.valueOf(time);
//    int i = Integer.parseInt(time);
    int i = (int) (lcc);
    String times = sdr.format(new Date(lcc));
    return times;
    
    }


    // 呼叫此方法輸入所要轉換的時間戳例如(1402733340)輸出("2016年6月16日 17時21分54秒")
    public static String times(long timeStamp) {
            SimpleDateFormat sdr = new SimpleDateFormat("MM月dd日  #  HH:mm");
            return sdr.format(new Date(timeStamp)).replaceAll("#",
                            getWeek(timeStamp));


    }


    private static String getWeek(long timeStamp) {
            int mydate = 0;
            String week = null;
            Calendar cd = Calendar.getInstance();
            cd.setTime(new Date(timeStamp));
            mydate = cd.get(Calendar.DAY_OF_WEEK);
            // 獲取指定日期轉換成星期幾
            if (mydate == 1) {
                    week = "週日";
            } else if (mydate == 2) {
                    week = "週一";
            } else if (mydate == 3) {
                    week = "週二";
            } else if (mydate == 4) {
                    week = "週三";
            } else if (mydate == 5) {
                    week = "週四";
            } else if (mydate == 6) {
                    week = "週五";
            } else if (mydate == 7) {
                    week = "週六";
            }
            return week;
    }


    // 並用分割符把時間分成時間陣列
    /**
     * 呼叫此方法輸入所要轉換的時間戳輸入例如(1402733340)輸出(2016-6-16 17:25:59")
     * 
     * @param time
     * @return
     */
    public String timesOne(String time) {
            SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
            @SuppressWarnings("unused")
            long lcc = Long.valueOf(time);
            int i = Integer.parseInt(time);
            String times = sdr.format(new Date(i * 1000L));
            return times;


    }


    /**
     * 並用分割符把時間分成時間陣列
     * 
     * @param time
     * @return
     */
    public static String[] timestamp(String time) {
            SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH時mm分ss秒");
            @SuppressWarnings("unused")
            long lcc = Long.valueOf(time);
            int i = Integer.parseInt(time);
            String times = sdr.format(new Date(i * 1000L));
            String[] fenge = times.split("[年月日時分秒]");
            return fenge;
    }


    /**
     * 根據傳遞的型別格式化時間
     * 
     * @param str
     * @param type
     *            例如:yy-MM-dd
     * @return
     */
    public static String getDateTimeByMillisecond(String str, String type) {


            Date date = new Date(Long.valueOf(str));


            SimpleDateFormat format = new SimpleDateFormat(type);


            String time = format.format(date);


            return time;
    }


    /**
     * 分割符把時間分成時間陣列
     * 
     * @param time
     * @return
     */
    public String[] division(String time) {


            String[] fenge = time.split("[年月日時分秒]");


            return fenge;


    }


    /**
     * 輸入時間戳變星期
     * 
     * @param time
     * @return
     */
    public static String changeweek(String time) {
            SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH時mm分ss秒");
            long lcc = Long.valueOf(time);
            int i = Integer.parseInt(time);
            String times = sdr.format(new Date(i * 1000L));
            Date date = null;
            int mydate = 0;
            String week = null;
            try {
                    date = sdr.parse(times);
                    Calendar cd = Calendar.getInstance();
                    cd.setTime(date);
                    mydate = cd.get(Calendar.DAY_OF_WEEK);
                    // 獲取指定日期轉換成星期幾
            } catch (ParseException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
            }
            if (mydate == 1) {
                    week = "星期日";
            } else if (mydate == 2) {
                    week = "星期一";
            } else if (mydate == 3) {
                    week = "星期二";
            } else if (mydate == 4) {
                    week = "星期三";
            } else if (mydate == 5) {
                    week = "星期四";
            } else if (mydate == 6) {
                    week = "星期五";
            } else if (mydate == 7) {
                    week = "星期六";
            }
            return week;


    }


    /**
     * 獲取日期和星期 例如:2016-6-16 17:26:16 星期四
     * 
     * @param time
     * @param type
     * @return
     */
    public static String getDateAndWeek(String time, String type) {
            return getDateTimeByMillisecond(time + "000", type) + "  "
                            + changeweekOne(time);
    }


    /**
     * 輸入時間戳變星期
     * 
     * @param time
     * @return
     */
    public static String changeweekOne(String time) {
            SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
            long lcc = Long.valueOf(time);
            int i = Integer.parseInt(time);
            String times = sdr.format(new Date(i * 1000L));
            Date date = null;
            int mydate = 0;
            String week = null;
            try {
                    date = sdr.parse(times);
                    Calendar cd = Calendar.getInstance();
                    cd.setTime(date);
                    mydate = cd.get(Calendar.DAY_OF_WEEK);
                    // 獲取指定日期轉換成星期幾
            } catch (ParseException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
            }
            if (mydate == 1) {
                    week = "星期日";
            } else if (mydate == 2) {
                    week = "星期一";
            } else if (mydate == 3) {
                    week = "星期二";
            } else if (mydate == 4) {
                    week = "星期三";
            } else if (mydate == 5) {
                    week = "星期四";
            } else if (mydate == 6) {
                    week = "星期五";
            } else if (mydate == 7) {
                    week = "星期六";
            }
            return week;


    }


    /**
     * 獲取當前時間
     * 
     * @return
     */
    public static String getCurrentTime() {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  HH時mm分");
            return sdf.format(new java.util.Date());
    }


    /**
     * 輸入日期如(2016年6月16日17時26分52秒)返回(星期數)
     * 
     * @param time
     * @return
     */
    public String week(String time) {
            Date date = null;
            SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日HH時mm分ss秒");
            int mydate = 0;
            String week = null;
            try {
                    date = sdr.parse(time);
                    Calendar cd = Calendar.getInstance();
                    cd.setTime(date);
                    mydate = cd.get(Calendar.DAY_OF_WEEK);
                    // 獲取指定日期轉換成星期幾
            } catch (ParseException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
            }
            if (mydate == 1) {
                    week = "星期日";
            } else if (mydate == 2) {
                    week = "星期一";
            } else if (mydate == 3) {
                    week = "星期二";
            } else if (mydate == 4) {
                    week = "星期三";
            } else if (mydate == 5) {
                    week = "星期四";
            } else if (mydate == 6) {
                    week = "星期五";
            } else if (mydate == 7) {
                    week = "星期六";
            }
            return week;
    }


    /**
     * 輸入日期如(2016-6-16 17:27:19)返回(星期數)
     * 
     * @param time
     * @return
     */
    public String weekOne(String time) {
            Date date = null;
            SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
            int mydate = 0;
            String week = null;
            try {
                    date = sdr.parse(time);
                    Calendar cd = Calendar.getInstance();
                    cd.setTime(date);
                    mydate = cd.get(Calendar.DAY_OF_WEEK);
                    // 獲取指定日期轉換成星期幾
            } catch (ParseException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
            }
            if (mydate == 1) {
                    week = "星期日";
            } else if (mydate == 2) {
                    week = "星期一";
            } else if (mydate == 3) {
                    week = "星期二";
            } else if (mydate == 4) {
                    week = "星期三";
            } else if (mydate == 5) {
                    week = "星期四";
            } else if (mydate == 6) {
                    week = "星期五";
            } else if (mydate == 7) {
                    week = "星期六";
            }
            return week;
    }
}