以毫秒为单位的UTC时间到UTC格式
是否有任何直接的方法将1980年1月6日开始的一定秒数转换为UTC格式,如YYYY/MM/DD HH:mm:ss?以毫秒为单位的UTC时间到UTC格式
编辑:这里是代码的工作:
private Date gpsInit;
//...
try{
String ds = "06/01/1980";
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
gpsInit = df.parse(ds);
}
catch(ParseException e) {
System.out.println("Unable to parse January 6th 1980");
}
textField = new JFormattedTextField(format);
textField.setText(formatUTC(min));
//...
private String formatUTC(int timeValue) {
long diference = timeValue + gpsInit.getTime()/1000;
String pattern = "yyyy/MM/dd HH:mm:ss";
SimpleDateFormat utcFormat = new SimpleDateFormat(pattern);
Date utcNow = new Date(diference*1000);
return utcFormat.format(utcNow);
}
喜欢的东西:
- 构建一个
Date
对象(通过Calendar
)为06.01.1980 00:00:00
日期 - 呼叫
getTime()
得到毫秒,因为EPOCH - 加入价格:毫秒
- 用该毫秒值构造一个新的
Date
对象。 - 格式你想要的东西(
SimpleDateFormatter
例如)
但是......如果我从1980年1月6日算起秒数,然后加上1070年1月1日以来的秒数,那么我将在2050年左右。没有? – 2012-03-07 10:06:08
@RomanRdgz,呃 - 不知道我理解你的问题。 EPOCH是01.01.1970,如果你从1980年1月1日到EPOCH得到毫秒,并且自从06.01.1980 *增加*毫秒,你就可以从1970年1月1日起*构造一个*毫秒的Date对象。 – Nim 2012-03-07 10:12:52
@RomanRdgz,我看到你改变了你的问题 - 它不会改变太多的东西,在适当的地方除以乘以1000。 – Nim 2012-03-07 10:14:11
闰秒可能会出现问题。 – CodesInChaos 2012-03-07 09:59:57
类似的问题:[GPS时间表示库](http://stackoverflow.com/q/3038229/642706)。 – 2015-09-08 05:05:31