Android 时间戳转换成普通日期格式总是显示1970年的问题

问题一:

在对时间戳转换成普通日期格式时,使用了chinaz.com上提供的方法,发现总是显示1970年。

    /**
     * 时间戳转时间格式:例如:2017-01-01 14:20:22
     * @param {number} timestamp 后端返回的时间戳(服务端时间)
     */

    public static String timestampToTimeForService(int timestamp) {
        String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(timestamp* 1000));
        return time;
    }

分析:

因为timestampToTimeForService函数的参数tiestamp定义的是int类型,后台返回的时间戳是10位数字,但是我就怀疑是不是超出了int类型的取值范围导致的转换失败?

解决:

其实很简单,只要在1000后面加上L,变成long类型的数据就没问题了。

    /**
     * 时间戳转时间格式:例如:2017-01-01 14:20:22
     * @param {number} timestamp 后端返回的时间戳(服务端时间)
     */

    public static String timestampToTimeForService(int timestamp) {
        String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(timestamp* 1000));
        return time;
    }

问题二:

上面的问题以及解决了,但是和网站的转换对比,发现两者相差了将近13个小时,因为我是用的Android模拟器验证的这个数据,所以很大的可能就是因为时区没有选对,可能不是选择的东八区导致的,后来检查发现确实是如此。

你可能感兴趣的:(Android 时间戳转换成普通日期格式总是显示1970年的问题)