Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我怎么知道CamelContext是什么时候启动的?_Java_Apache Camel - Fatal编程技术网

Java 我怎么知道CamelContext是什么时候启动的?

Java 我怎么知道CamelContext是什么时候启动的?,java,apache-camel,Java,Apache Camel,我想知道什么时候开始的。如我所见,DefaultCamelContext有私有日期startDate字段。没有从该字段获取信息的getter或其他方法。我能得到的只是返回正常运行时间的getUptimeMillis(),但这不是我想要的 我知道我可以使用反射获得字段值: Class clazz = context.getClass(); Field field = clazz.getDeclaredField("startDate"); field.setAccessible(true); Da

我想知道什么时候开始的。如我所见,DefaultCamelContext有
私有日期startDate
字段。没有从该字段获取信息的getter或其他方法。我能得到的只是返回正常运行时间的
getUptimeMillis()
,但这不是我想要的

我知道我可以使用反射获得字段值:

Class clazz = context.getClass();
Field field = clazz.getDeclaredField("startDate");
field.setAccessible(true);
Date date = (Date) field.get(context);
但我认为这不是一个好办法

是否有其他方法获取此信息(可能是使用其他CamelContext、一些camel组件或服务)


谢谢。

是的,我们可以将其作为公共API。我创造了一张票


否则,您应该按照建议通过正常运行时间减去当前时间来计算开始日期。

您可以计算
Instant ccStarted=Instant.now().minusMillis(context.getUptimeMillis())
。谢谢。这可能是一个解决方案,但可能有更漂亮的方法。LocalDateTime now=LocalDateTime.now();LocalDateTime startDate=now.minus(camelContext.getUptimeMillis(),ChronoField.MILLI_OF_DAY.getBaseUnit());我还没有测试过,但你得到了一个想法,你可以一直有一个路线,从启动开始,并保存日期。这将是启动后的一点时间。。。