问题标签 [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.

0 投票
1 回答
1877 浏览

java - Spring java.time.LocalDateTime 绑定问题

我有一个具有以下属性的域对象,在提交表单时,只有完成日期从表单输入绑定,而 dateRaised 为空。除了验证错误之外没有错误。我尝试将 dateRaised 类型更改为 java.time.LocalDate 并且它工作正常。是否已支持绑定到 java.time.LocalDateTime?

0 投票
0 回答
250 浏览

scala - 如何使用 json4s 和 Jackson 序列化/反序列化 JSR310 类?

我有一个案例类:

case class Stuff(createdOn: Instant)

我正在使用 json4s 和 Jackson 来提供我的 JSON 序列化/反序列化。但是,我无法createdOn正确序列化/反序列化。

如果我使用普通的 Jackson,https://github.com/FasterXML/jackson-datatype-jsr310会很棒。但是,在使用 json4s 时,即使我使用注册 JSR310 模块

org.json4s.jackson.JsonMethods.mapper.registerModule(new JavaTimeModule())

我仍然无法得到我的Instant权利。

我错过了什么吗?

0 投票
2 回答
212 浏览

java - Java 日期和时间 (JSR 310):时间范围是否包含值而不迭代所有值

我有一个自定义范围 (~ Collection),它有 2 个Temporal边界 (fromto),并且可以通过使用给定的递增来及时枚举这 2 个边界之间的所有值TemporalUnit incrementUnitType

在其中,我需要实现一个 contains 方法,以检查遍历该范围是否包含特定值。例如,如果它包含 8 March。这是我想编写该方法的方式:

这里有几个迭代:

  • 从 - 到 (incrementUnitType)
  • 3 月 1 日 - 4 月 10 日(1 天): 3 月 1 日、3 月 2 日、3 月 3 日、3 月 4 日、...、4 月 8 日、4 月 9 日
  • 3 月 1 日 - 4 月 10 日(1 周):3 月 1 日、3 月 8 日、3 月 15 日、3 月 22 日、3 月 29 日、4 月 5 日
  • 3 月 1 日 - 4 月 10 日(1 个月):3 月 1 日、 4 月 1 日

在最后一种情况下,上面的代码将不正确地返回 8-MAR 的 true。for通过执行循环并检查每个可能的值,这是我需要编写该代码才能工作的方式:

这是一个可扩展性问题。有什么办法可以避免吗?

0 投票
1 回答
402 浏览

java - Java 日期和时间:如何使 plus() 和 until() 互为逆

大多数情况下,这两种方法是互逆的:

  • Temporal Temporal.plus(long, TemporalUnit)
  • long Temporal.until(Temporal, TemporalUnit)

例如从 1 月 1 日开始:

它们互为逆:

1-JAN 加 1 个月:2017-02-01
1-JAN 到 1-FEB 月份:1 // 好


但是,在此示例中,从 31-JAN 开始:

它们不是彼此相反的:

1 月 31 日加 1 个月:2017-02-28 // 不好?上限应该到 3 月 1 日吗?
1 月 31 日至 2 月 28 日(以月计):0 // 或者这很糟糕?应该是1?


我怎样才能使它们彼此相反?

0 投票
1 回答
994 浏览

spring - 如何在 Spring HATEOAS 中反序列化 java.time.LocalDate?

我正在构建一个 Spring HATEOAS 应用程序。当我发布包含 ISO8601 日期的 JSON 文档时,我得到:

无法读取 HTTP 消息:org.springframework.http.converter.HttpMessageNotReadableException:无法读取文档:无法解析文本“2016-05-13T21:00:00.000Z”,在索引 10 处找到未解析的文本(通过引用链: com.my.package.web.resources.MyResource["startDate"]); 嵌套异常是 com.fasterxml.jackson.databind.JsonMappingException: Text '2016-05-13T21:00:00.000Z' could not be parsed, unparsed text found at index 10 (through reference chain: com.my.package.web.资源.MyResource["startDate"])

按照这里的建议,我的类路径中有 jackson-datatype-jsr310 。我还尝试使用默认和自定义反序列化器在适当的字段上显式声明@JsonDeserialize/ 。@JsonSerialize有任何想法吗?

0 投票
2 回答
1573 浏览

javascript - 如何在 js-joda 中进行严格的 LocalDate 解析?

我正在尝试LocalDate从(版本 1.1.1)String中使用严格分辨率解析 a。js-joda我不想接受无效日期的输入,例如2016-05-32. 但我就是不明白。

我的代码是:

和错误:

ResolverStyle.LENIENT与此模式的预期相同或ResolverStyle.SMART工作的代码相同。

如何在 中使用严格分辨率js-joda

JS 演示

更新

但是js-joda DateTimeFormatter API没有提到这个选项,uuuu-MM-dd@JodaStephen 提出的模式可以正常工作。工作 Js 演示

js-joda api

Java API

0 投票
2 回答
2442 浏览

vaadin - 如何将 Vaadin DateField 绑定到 LocalDateTime

Vaadin文档展示了如何使用DateFieldwithjava.util.Date但我想将DateFieldwith a绑定BeanFieldGroup到 Java 8 类型的 bean 属性java.time.LocalDateTime。我怎样才能做到这一点?

0 投票
1 回答
294 浏览

json - 在 Grails 3 JSON / rest-api 中格式化 java.time (jsr310) 对象

尝试在 Grails 3.1.x 休息控制器中使用 java.time API。

我的域对象“缺席”有一个字段

build.gradle 包含

作为依赖

和 application.groovy 包含

}

这适用于持久化域对象,因此它的后端/数据库端似乎可以按预期工作。

但是,当通过 RestController 序列化域对象时,我无法正确格式化我想要的方式(即 yyyy-MM-dd)。输出是

但我真正想要的是

我试图在 Grails 文档中找到解决方案,但是,即使在多次搜索答案之后,我似乎也无法弄清楚。我找到了有关格式化 java.util.Date 的文档,但这不是我想要的。

GET 请求的“问题”并不多,但对于 POST 和 PUT 请求来说,它是不切实际的,所以我需要让短格式 yyyy-MM-dd 工作。

有没有人找到解决方案?

0 投票
2 回答
2823 浏览

java - 是否有等效于 ChronoUnit.between 的返回分数而不是整数?

方法是ChronoUnit.HOURS.between(start, end)返回long,所以我不能从那里得到分数。

是否有可以返回分数的替代方法/方法?

0 投票
1 回答
1916 浏览

java - java.time 的 Spring DateTimeFormat 配置

我正在开发一个使用纯 Java 配置来设置其 bean 的 Spring WebMvc(不是 Spring Boot)项目。我很难让 Spring/Jackson 尊重带有 java.time (jsr310) 对象(如 LocalDateTime)的 @DateTimeFormat 注释。

我在类路径上有 jackson-datatype-jsr310 和 jackson-databind jar(版本 2.7.4),以及基本 webmvc 应用程序 spring-context 和 spring-webmvc(版本 4.3.0.RELEASE)的相关 spring jar

这是我的相关配置类:

我已经通过在休息控制器上序列化我的数据模型对此进行了测试。似乎杰克逊尊重@JsonFormat,但完全忽略了@DateTimeFormat。

为了让 spring/jackson 尊重@DateTimeFormat,我还缺少什么额外的配置?我应该注意的两个注释之间是否有任何关键区别,仅使用@JsonFormat 可能会遇到的问题?