解决了robot.awt的需求问题后,我现在在运行应用程序时遇到了另一个问题。应用程序构建没有问题。堆栈跟踪 :
Exception in Application constructor
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
Caused by: java.lang.RuntimeException: Unable to construct Application instance: class reports.Main
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:890)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.IllegalAccessException: class com.sun.javafx.application.LauncherImpl (in module javafx.graphics) cannot access class reports.Main (in module Reports) because module Reports does not export reports to module javafx.graphics
at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:361)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:591)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$8(LauncherImpl.java:802)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) …Run Code Online (Sandbox Code Playgroud) 所以我添加了我对module-info.java的要求,最后加载了我的程序,但是一旦tab窗格想要从jfoenix库加载,就会抛出这个错误.
Caused by: java.lang.IllegalAccessError: class com.jfoenix.skins.JFXTabPaneSkin (in module com.jfoenix) cannot access class com.sun.javafx.scene.control.behavior.TabPaneBehavior (in module javafx.controls) because module javafx.controls does not export com.sun.javafx.scene.control.behavior to module com.jfoenix
Run Code Online (Sandbox Code Playgroud) 我的最终目标是检查subscription.cancel_at_period_end订阅false结束日期并将其存储为时刻日期对象。
const subscriptionEndDate = moment(subscription.current_period_end);
Run Code Online (Sandbox Code Playgroud)
这是来自测试模式下条带的结果字段。
current_period_end: 1649650039
Run Code Online (Sandbox Code Playgroud)
但即使使用new Date(subscription.current_period_end)也会回来1970-01-20T02:14:10.039Z
这不是应该显示下一个账单日期的字段吗?
有什么想法吗?我缺少什么?
更新:
我只是做了一些测试,结果发现如果我将该值乘以1000,结果就是1649650039000,这等于
2022 年 4 月 11 日星期一 00:07:19
是否有一个原因?这是一种安全的前进方法吗?
更新:
我接受了下面的答案,并提供了直接转换为 unix 时间戳的 momentjs。
const date = moment(new Date()).unix();
Run Code Online (Sandbox Code Playgroud)