使用Dates和时有一种奇怪的怪异Calendar.要点是我想创建一个特定的日期,例如
Calendar cal = Calendar.getInstance();
cal.set(1970, 0, 1, 0, 0, 0);
Date date = cal.getTime();
Run Code Online (Sandbox Code Playgroud)
现在的问题是:它显示了正确的日期,但是在调试时我在日期变量下看到例如"fasttime" -3599459.这使我的JUnit测试失败,因为期望的值是-3600000.似乎日历增加了541毫秒或类似于初始化时...
问题是:是不是可以简单地创建一个固定的日期而不是'我在后台'鬼功能中添加几毫秒?
我在例子中从字符串中获取毫秒数时遇到麻烦.到目前为止,我已经尝试了这三种不同的方式,示例显示了最新的尝试.似乎总是认为TemporalAccessor不支持ChronoField.如果我可以成功构建一个Instant实例,我可以使用toEpochMilli().
String dateStr = "2014-08-16T05:03:45-05:00"
TemporalAccessor creationAccessor = DateTimeFormatter.ISO_OFFSET_DATE_TIME.parse(dateStr);
Instant creationDate = Instant.from(creationAccessor);
Run Code Online (Sandbox Code Playgroud)
请提供简明的答案(不要从头开始构建格式化程序)并仅使用java 8标准发行版(我可以使用Joda,但希望避免依赖项).
编辑:上面代码中的Instant.from抛出:java.time.DateTimeException: Unable to obtain Instant from TemporalAccessor: {OffsetSeconds=-18000},ISO resolved to 2014-08-16T05:03:45 of type java.time.format.Parsed
默认情况下,使用DateTimeFormatter.ISO_INSTANT格式化程序的toString方法.如果格式化程序碰巧为0,则不会打印秒数的数字.Instant
java时间示例:
2015-10-08T17:13:07.589Z
2015-10-08T17:13:07Z
Run Code Online (Sandbox Code Playgroud)
Joda-Time示例(以及我对java.time的期望):
2015-10-08T17:13:07.589Z
2015-10-08T17:13:07.000Z
Run Code Online (Sandbox Code Playgroud)
在一些系统中解析这真的很令人沮丧.Elasticsearch是我遇到的第一个问题,没有预定义的格式支持可选的millis,但我可以使用自定义格式解决这个问题.默认似乎是错误的.
看来你无法为Instants构建自己的格式字符串.是实现我自己的java.time.format.DateTimeFormatterBuilder.InstantPrinterParser的唯一选择吗?
我已经看过几篇在Java 9中简要提到自包含应用程序的在线演示文稿,但我有一个问题需要我解决.
使用新模块系统,您现在只允许包含运行应用程序所需的最少代码.但是,希望运行应用程序的系统是否仍然需要JRE,或者是否可以包含在程序中的基本模块中?
我怀疑它是后者,因为下载最新版Java 的页面(这里)仍显示版本8_151.
TL; DR - 使用Java 9,是否可以创建一个可以在没有安装JRE/Java的系统上执行的自包含可执行文件?
我在Java中使用compareTo方法尝试检查某个日期是否大于或等于另一个日期之后的24小时.
如何确定要比较日期的整数?
自Java 7u40以来,Java Mission Control已包含在Java JDK中.
从JMC文档中可以清楚地看出这是一个商业功能,但JDK文档没有明确说明何时可以免费使用JMC,何时需要Java SE Advanced许可证.这可能是因为甲骨文希望使用它并因此使其免费提供,或者因为它们通常采用"免费开发,支付生产"政策,并且只是想引诱开发人员使用新的昂贵玩具.
谁找到了确切的条款?
编辑:从Java 11开始,jfc是开源OpenJDK的一部分,而不仅仅是Oracle支持的Oracle Java 11.
在Joda-Time库中,DateTime该类提供了withTimeAtStartOfDay获取当天第一时刻的方法.你可能会认为那个时刻是"午夜".第一个时刻通常是时间,00:00:00.000但并非总是如此.
在Java 8及更高版本中找到的java.time包是否具有等效功能?
我需要将一些代码与Java lambda函数的广泛使用集成在一起.我有几个限制要求我使用Eclipse Mars开发我的项目,使用最新的ADT插件,而不是Android Studio.
问题是使用Lambda函数需要使用1.8 JDK兼容性,但是如果这样设置,我收到以下消息:
Android requires compiler compliance level 5.0 or 6.0. Found '1.8' instead.
Run Code Online (Sandbox Code Playgroud)
这两个人怎么能和睦相处?
编辑:这不是建议的问题的重复,因为我问的是ADT Eclipse,自从上一次更新这个问题以来,Android确实支持Java 8,所以这不仅不重复,而且现在问题是(在上次更新后的1.5年后)已过时.
我是Java开发人员,我将开始新项目.我的客户端开发技能非常有限,这就是为什么我真的很喜欢Vaadin框架的想法.我已经评估了Vaadin 10 Bakery App Starter应用程序https://vaadin.com/start#vaadin10,并且为了使这个应用程序启动并运行而自定义的HTML/CSS/JavaScript数量让我感到惊讶.现在我真的很困惑,不明白它如何简化开发人员的生活.
我现在可以作为项目启动器使用的唯一应用程序是着名的QuickTickets Dashboard https://demo.vaadin.com/dashboard/,其中所有UI都是纯Java实现的.目前最大的问题是这个应用程序是在Vaadin 8上实现的,我无法为Vaadin 10找到它的版本.你有类似Vaadin 10的东西吗?如果不是,您是否有从Vaadin 8到Vaadin 10的迁移指南,我可以使用它来尝试将此应用程序移植到Vaadin 10?
对于IntelliJ 2018中Maven驱动的项目,什么时候应该选择使用\xe2\x80\xa6
\n\nBuild>Rebuild Projectclean和installLifecycle 项什么情况下合适?
\n\n我的情况是使用Vaadin archetype 的Vaadin 8应用程序。vaadin-archetype-application-multimodule
问题是,IntelliJ Build > Rebuild Project 是否会调用 maven?有一个答案说Rebuild Project根本不调用 Maven。但没有给出何时使用路线和其他路线的指导。