Java 格式为';07:df:01:0e:0e:28:2a:39';?

Java 格式为';07:df:01:0e:0e:28:2a:39';?,java,date,format,Java,Date,Format,我试图从UCS接收陷阱并将其转换为JSON格式 但是,我遇到了这样一种时间格式: 07:df:01:0e:0e:28:2a:39 我不熟悉这种格式,也不知道如何将其转换为其他格式(如HH:MM:SS-YY:MM:DD)或任何其他人类可读的格式 使用Java(或者只是一般地),我如何解析这个特定的格式 如果您将组转换为十进制格式,您将得到以下07df=2015、01=01、0e=14等。最后您将看到2015011414404257。我认为这很清楚。它是“标准文本约定中的数据和时间,该约定在SNM

我试图从UCS接收陷阱并将其转换为JSON格式

但是,我遇到了这样一种时间格式:

07:df:01:0e:0e:28:2a:39
我不熟悉这种格式,也不知道如何将其转换为其他格式(如HH:MM:SS-YY:MM:DD)或任何其他人类可读的格式


使用Java(或者只是一般地),我如何解析这个特定的格式

如果您将组转换为十进制格式,您将得到以下07df=2015、01=01、0e=14等。最后您将看到2015011414404257。我认为这很清楚。

它是“标准文本约定中的数据和时间,该约定在SNMPv2 TC中定义。”


你怎么知道两组元素是如何用冒号分隔的?嗨,谢谢你的回答…它可以工作,但可以从历元时间以毫秒为单位完成…技术上说:历元时间是从1970年1月1日00:00开始的秒数。:-]要获得所需内容,请使用java.util.Date类及其方法(setYear等)。之后使用Date.getTime()。或者日历。或者Java8中新的日期/时间库中的内容
  @Test
public void test() {
    String time = "07:df:01:0e:0e:28:2a:39";
    time = time.replaceFirst(":", "");
    String[] values = time.split(":");
    assertEquals(7, values.length);
    for(String value : values){
        System.out.print(Integer.parseInt(value, 16) + " ");
    }
}