android时间戳转换成日期(与php后台),日期转换成时间戳小问题记录

之前常用的是,和java开发的后台对接数据,正常也没有遇到过这个问题,又一次在和php对接的后台做项目是,时间转换出了问题,我看了些许时间的代码,都没有问题。最后发现返回时间戳的位数不对,才确认到,问题是出现在这里

PHP和Java时间戳存在三位位差!!!

所以,在工具类里面,对于接收服务器的时间戳,转换之前,添加了一个判断,以方便“以防万一”。

代码块:

   public static String getFetureDate(long expire) {
        //PHP和Java时间戳存在三位位差,用000补齐
        if (String.valueOf(expire).length() == 10) {
            expire = expire * 1000;
        }
        Date date = new Date(expire);
        SimpleDateFormat format = new SimpleDateFormat("MM月dd日");
        String result = format.format(date);
        if (result.startsWith("0")) {
            result = result.substring(1);
        }
        return result;
    }

以上,则可以列为常用时间转换的工具类里的常用方法。
至于其他的时间转换格式方法,附上一个网络上“遍地都是”的工具类一份也方便大家使用。

// by zhenqi  http://blog.csdn.net/w630886916 
public class DateUtils {  

    public static String getTodayDateTime() {  
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",  
                Locale.getDefault());  
        return format.format(new Date());  
    }  

    /** 
     * 掉此方法输入所要转换的时间输入例如("2014年06月14日16时09分00秒")返回时间戳 
     *  
     * @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);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        return times;  
    }  

    public static String getTodayDateTimes() {  
        SimpleDateFormat format = new SimpleDateFormat("MM月dd日",  
                Locale.getDefault());  
        return format.format(new Date());  
    }  

    /** 
     * 获取当前时间 
     *  
     * @return 
     */  
    public static String getCurrentTime_Today() {  
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");  
        return sdf.format(new java.util.Date());  
    }  

    /** 
     * 调此方法输入所要转换的时间输入例如("2014-06-14-16-09-00")返回时间戳 
     *  
     * @param time 
     * @return 
     */  
    public static 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);  
        } catch (Exception 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);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        return times;  
    }  

    /** 
     * 调用此方法输入所要转换的时间戳输入例如(1402733340)输出("2014年06月14日16时09分00秒") 
     *  
     * @param time 
     * @return 
     */  
    public static 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)输出("2014-06-14  16:09:00") 
     *  
     * @param time 
     * @return 
     */  
    public static String timedate(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)输出("2014年06月14日16:09") 
     *  
     * @param time 
     * @return 
     */  
    public static 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 timeslash(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 timeslashData(String time) {  
        SimpleDateFormat sdr = new SimpleDateFormat("yyyy/MM/dd");  
        @SuppressWarnings("unused")  
        long lcc = Long.valueOf(time);  
//      int i = Integer.parseInt(time);  
        String times = sdr.format(new Date(lcc * 1000L));  
        return times;  

    }  

    /** 
     * @param time斜杠分开 
     * @return 
     */  
    public static String timeMinute(String time) {  
        SimpleDateFormat sdr = new SimpleDateFormat("HH:mm");  
        @SuppressWarnings("unused")  
        long lcc = Long.valueOf(time);  
        int i = Integer.parseInt(time);  
        String times = sdr.format(new Date(i * 1000L));  
        return times;  

    }  

    public static String tim(String time) {  
        SimpleDateFormat sdr = new SimpleDateFormat("yyyyMMdd HH:mm");  
        @SuppressWarnings("unused")  
        long lcc = Long.valueOf(time);  
        int i = Integer.parseInt(time);  
        String times = sdr.format(new Date(i * 1000L));  
        return times;  
    }  

    public static String time(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;  
    }  

    // 调用此方法输入所要转换的时间戳例如(1402733340)输出("2014年06月14日16时09分00秒")  
    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)输出("2014-06-14-16-09-00") 
     *  
     * @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;  

    }  

    public static String timesTwo(String time) {  
        SimpleDateFormat sdr = new SimpleDateFormat("yyyy-MM-dd");  
        @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 (Exception 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;  

    }  

    /** 
     * 获取日期和星期 例如:2014-11-13 11:00 星期一 
     *  
     * @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 (Exception 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());  
    }  

    /** 
     * 输入日期如(2014年06月14日16时09分00秒)返回(星期数) 
     *  
     * @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 (Exception 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;  
    }  

    /** 
     * 输入日期如(2014-06-14-16-09-00)返回(星期数) 
     *  
     * @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 (Exception 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;  
    }  
}  

Demo就不写了,直接创建类,粘贴复制即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值