我使用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);
但是当我运行这个时,我观察到奇怪的结果,例如星期一,1970年3月2日星期一,4:21,PM,星期日,4月27日,25:4,上午4点,等等。 UTC值也从非常小的值(如300)变为非常大的值,如3154137089,这没有任何意义。这里有什么问题?我怎么解决这个问题?