0

我使用 jflow-0.3[1] 来收集和解码从路由器接收到的 netflow 记录。nettrack.net.netflow.Flow.java 类包含从接收到的记录中解码必要数据的代码。我调用了它的 getFirst() 函数,它返回“此数据收集期开始时的协调世界时 (UTC) 秒时间。 ”[2]。然后我使用以下代码将其转换为日期时间格式。

  long seconds = getFirst();
  long millis = seconds * 1000;
  Date date = new Date(millis);
  SimpleDateFormat sdf = new SimpleDateFormat("EEEE,MMMM d,yyyy h:mm,a", Locale.ENGLISH);
  sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
  String formattedDate = sdf.format(date);
  System.out.println(formattedDate);

但是当我运行它时,我观察到日期的奇怪结果,例如 Monday,March 2,1970 4:21,PM, Sunday,April 27,2059 4:17,AM 等。UTC 值也从非常小的值(如 300)变为非常大的值(如 3154137089),这没有任何意义。这里有什么问题?我该如何解决这个问题?

  1. https://github.com/aptivate/netgraph/tree/master/jflow-0.3
  2. http://www.cisco.com/en/US/docs/net_mgmt/netflow_collection_engine/6.0/tier_one/user/guide/data.html
4

0 回答 0