Java GPS时间(毫秒到UTC格式)

Java GPS时间(毫秒到UTC格式),java,swing,date,Java,Swing,Date,有没有直接的方法将1980年1月6日开始的一定数量的秒转换为UTC格式,如YYYY/MM/DD HH:MM:ss 编辑:以下是工作代码: private Date gpsInit; //... try{ String ds = "06/01/1980"; DateFormat df = new SimpleDateFormat("dd/MM/yyyy"); gpsInit = df.parse(ds); } catch(ParseE

有没有直接的方法将1980年1月6日开始的一定数量的秒转换为UTC格式,如YYYY/MM/DD HH:MM:ss

编辑:以下是工作代码:

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);
    }
比如:

  • 06.01.1980 00:00:00
    日期构建
    Date
    对象(通过
    Calendar
  • 调用
    getTime()
    以获取自EPOCH以来的毫秒数
  • 再加上你的毫秒数
  • 用该毫秒值构造一个新的
    Date
    对象
  • 按需格式化(例如,
    SimpleDataFormatter
  • 比如:

  • 06.01.1980 00:00:00
    日期构建
    Date
    对象(通过
    Calendar
  • 调用
    getTime()
    以获取自EPOCH以来的毫秒数
  • 再加上你的毫秒数
  • 用该毫秒值构造一个新的
    Date
    对象
  • 按需格式化(例如,
    SimpleDataFormatter

  • 闰秒可能有问题。类似的问题:。这里的“分钟”是什么?闰秒可能有问题。类似的问题:。这里的“分钟”是什么?但是。。。如果我从1980年1月6日算起秒数,再加上1070年1月1日算起的秒数,我大概在2050年。不?Romandgz,呃-我不太明白你的问题。EPOCH是01.01.1970,如果你得到1980年01月06日到EPOCH的毫秒数,并加上1980年01月06日起的毫秒数,你就可以用1970年01月01日起的毫秒数构造一个
    日期
    对象。@Romandgz,我看到你改变了你的问题-它不会改变太多,在适当的地方除以1000。好的,我现在明白了。对不起,我还想睡。我会试试的但是。。。如果我从1980年1月6日算起秒数,再加上1070年1月1日算起的秒数,我大概在2050年。不?Romandgz,呃-我不太明白你的问题。EPOCH是01.01.1970,如果你得到1980年01月06日到EPOCH的毫秒数,并加上1980年01月06日起的毫秒数,你就可以用1970年01月01日起的毫秒数构造一个
    日期
    对象。@Romandgz,我看到你改变了你的问题-它不会改变太多,在适当的地方除以1000。好的,我现在明白了。对不起,我还想睡。我试试看