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文章

Android studio运行程序出现两个apk

2020-1-20 20:34:09

Android文章

AndroidStudio中代码混淆以及打包操作

2020-1-21 8:27:37

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索