问题标签 [jsr310]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java-8 - java.util.Date 和 java.util.Calendar 是否已弃用?
似乎新的java.time
API 提供了一切java.util.Date
,甚至更多。自 Java 8 以来有更新的 API 时,
是否有任何理由使用?应该并且完全避免?java.util.Date
java.time
java.util.Date
java.util.Calendar
java - JJWT / Jackson 更改使用的 ObjectMapper
对于我正在进行的项目,我需要使用库io.jsonwebtoken (jjwt)提供的 Spring Security 和 JSON Webtokens 。我需要添加到生成的令牌中的声明之一是以下实体(简化以说明问题):
这可行,但生成的 webtoken 序列化如下:
这可能看起来不是问题,但实际上是一个问题,稍后我需要再次将其映射到 MyEntity 的实例。在线阅读后,我想我需要更改 ObjectMapper 的配置,以更改配置选项(将WRITE_DATES_AS_TIMESTAMPS
-flag 切换为 false)。但是,我无法更改 jjwt 使用的 ObjectMapper 的配置,因为它是这样构造的(jjwt 的来源):
我在网上找到的另一个选择是将以下行放在我的 application.properties 文件中:
然而无济于事,jjwt 使用的 ObjectMapper 似乎忽略了这些属性。
我会做什么来实现我的目标?
spring-mvc - 将 LocalTime 的格式化程序设置为 ISO 的最佳实践
在搜索并查看spring源代码后,我发现我可以通过以下两种方式之一配置应用程序范围的默认LocalTime格式化程序(主要用于请求参数)(均通过子类WebMvcConfigurer
:
另一种方法是重新定义DateTimeFormatterRegistrar
自身并要求自己使用iso格式:
哪一个被认为是最佳实践,并且不会让团队添加一个类似于为日期提供的属性spring.mvc.date-format
以用于时间的属性?
编辑:文档说使用第一种方法来注册一个新的格式化程序;我认为这里不是这种情况。
java - 如何在 Android Studio 中忽略 java.time 包
我目前正在开发一个最低 API 版本为 17(JellyBean)的 Android Studio 项目,因此我无法使用该java.time
包。相反,我使用的是适用于 Android ( com.jakewharton.threetenabp:threetenabp:1.1.0
) 的 ThreeTen backport。
我的问题是 中的每个类都com.threeten.bp
匹配 中的一个java.time
,并且我发现很容易意外导入错误的类,因为自动完成弹出窗口java.time
首先显示该选项。我需要一种方法来java.time
从我的项目中删除该包,或者至少告诉 Android Studio 忽略它。有可能这样做吗?
elasticsearch - Elasticsearch 6.3:为什么 DateHistogramAggregationBuilder 不支持 JSR-310?
在 ES 6.3DateHistogramAggregationBuilder
中似乎只支持 jodaDateTimeZone
而不是 JSR-310 ZoneId
。我错过了什么吗?(我曾经使用DateHistogramBuilder
which support javaZoneId
但该类不再可用)
spring-boot - Spring Boot 应用程序中 Swagger2 和 jackson-datatype-jsr310 之间的冲突
我正在使用 Spring Boot 创建 REST API,并且在使用 Swagger 2 时序列化 LocalDateTime 时遇到问题。
如果没有 Swagger,JSON 输出是这样的:
使用 Swagger 是这样的:
我已将此添加到 pom 文件中,以便正确序列化日期:
这是杰克逊的配置:
这是 Swagger 的配置:
当我将这样的反序列化器添加到 DTO 的字段时,它会起作用。但是,它应该可以工作而无需添加它。
我想问题在于 Swagger 有自己的对象映射器,它覆盖了另一个对象映射器。知道如何解决它吗?
提前致谢
android - 使用 LocalDate 而不是日月年的 DatepickerDialog
我正在尝试创建一个自定义DatePickerDialog
类来触发onDateSet
侦听器回调,但我不想包含“日”“月”和“年”值,而是想重载构造函数以包含LocalDate
来自 java.time 的值。我知道我可以将这些值相互转换,但出于学习目的,我想直接进行。
我以前从未扩展/重载过 Android 类,所以我不确定要采取哪些步骤。
我试图创建一个CustomDatePickerDialog
扩展的类DatePickerDialog
,但默认构造函数仍必须包含超级构造函数,所以这对我没有帮助。
另一个想法是我可以将 Android 类 ( DatePickerDialog
) 复制到我的本地应用程序中,在那里更改名称和构造函数,然后使用我的新本地类。问题在于,我找不到 DatePickerDialog 的源代码(或任何与此相关的类)。我也觉得这是一种解决问题的迂回方式。
为扩展默认android类的自定义类更改构造函数的最佳方法是什么?
java - 根据 JSR-310 本地化 YearWeek 的良好设计
我需要一个代表一周 7 天的本地化概念的对象。该对象与ThreeTen-ExtraYearWeek
库中的对象几乎相同,只是第一天和最少天数有所不同。
我最初想LocalizedYearWeek
用一些工厂方法来实现一个LocalizedYearWeek.of(int year, int week, WeekDefinition weekDefinition)
. 该类WeekDefinition
只是一个值对象,它定义了一周中的第一天和最少天数,它也可以作为WeekFields
.
我不确定它是否是这种时间的最佳模型,但我没有想出更好的设计理念,所以我正在寻找一些关于如何实现它的指导。
java - Java 8 例外:com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer 没有默认(无 arg)构造函数
我有一个具有字段的模型类:
当这个模型的请求被发送到服务器时,我的控制器会抛出一个异常:
pom.xml 有 2.8.11 版本的依赖:
我知道这是由@JsonDeserialize 需要无参数构造函数引起的,但是有解决方法吗?非常感谢。
java - 使用注释的 LocalDate[] 的杰克逊数据绑定
我正在使用带有 Java 8 模块的 Jackson 将 JSON 文件转换为 Java 对象。但是在将 JSON 数组转换为 LocalDate[] 时,应用程序会引发异常。
如何使用注释将下面的 JSON 数组转换为 LocalDate[]?
JSON
代码
例外