今天做项目遇到了GPS Time格式的时间,经过查询自己写了一个解析的方法,如下:
时间如:1544,489261.040 说明 1544是从1980年1月6日的星期数,489261.040是从当前星期天开始的秒数。.040是毫秒数。解析如下:
运行结果是:Fri Aug 14 15:54:21 CST 2009
时间如:1544,489261.040 说明 1544是从1980年1月6日的星期数,489261.040是从当前星期天开始的秒数。.040是毫秒数。解析如下:
/**
* 1544,489261.040
* @return
* @throws ParseException
*/
public static Date getDayOfString(String gpsTime) throws ParseException{
if(gpsTime == null){
return null;
}
String[] weekList = gpsTime.split(",");
String weeks = weekList[0];
String times = weekList[1];
int weeksInt = -1;
double weekTONow = 0.0d;
try{
weeksInt = Integer.parseInt(weeks);
weekTONow = Double.parseDouble(times);
}catch(Exception eq){
eq.printStackTrace();
}
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
long interval = weeksInt*7 *(24 * 60 * 60 * 1000l)+myFormatter.parse("1980-1-6").getTime();
java.util.Date date = new Date(interval);
Double tmp1 = weekTONow*1000l;
long newDayTime = date.getTime()+tmp1.longValue();
return new Date(newDayTime);
}
运行结果是:Fri Aug 14 15:54:21 CST 2009