最近在写项目的时候总是遇到了时间戳的问题,有的时候可以解析出时间,有些解析出来总是1970年,真的是心塞啊。其实这种问题不难解决,关键是这种小问题让我不爽,今天特意记录下来,方便以后用。说一下本人的想法,在编程上,遇到问题,我总是会想为什么会出现这样的问题,原因在哪,我就是要刨根问底,做编程必须这样。
由于接口给我的时间戳是13位的,我百度搜索了一下转换时间戳的方法,为什么总是转换成1970年?因为它只对解析10位的时间戳有效,so,我想这么简单的问题,百度一下,找个帖子拷贝代码就行了,于是,开始了漫长的逗比旅程,百度的帖子上不写针对10位或者13位,后来我查看了java文档,自己写了一个转换13位时间戳的方法。
/**
* 根据时间戳转换时间,精确到分(适用于13位时间戳)
* @param date
* @return
*/
public static String getDateSecondString(String date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:MM",
Locale.getDefault());
return sdf.format(Long.valueOf(date));
}
/**
* 根据时间字符串获取时间戳(13位)
* @param time
* @return
*/
public static String getTimeStamp(String time){
DateFormat datefomat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date d = datefomat.parse(time);
return d.getTime() + "";
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return "";
}
}
java的时间戳是13位的