我将Spring
Framework用于我的服务API和org.joda.time.DateTime
日期时间解析。具体来说,我使用ISOFormatter.dateOptionalTimeParser()
,它使用户可以灵活地仅使用日期,或者同时使用日期和时间,这是必需的。
相信我,我已经看到了所有这些我可以告诉人们的相关问题,例如this和this等等。
以前,我以日期String
为准,然后在服务层中使用上面提到的joda格式化程序处理日期,但是现在我想在控制器中添加请求验证,这意味着如果请求在语法上不正确,则该请求不应甚至去服务层。
我试过使用的多种变体@DateTimeFormat(iso = ISO.DATE_TIME)
,以及以pattern
运气不好的方式指定String,无论如何。
@RequestMapping(value = URIConstants.TEST_URL, method = RequestMethod.GET)
public @ResponseBody String getData(@RequestParam(required = false) DateTime from,
@RequestParam(required = false) DateTime to) {
return dataService.fetchDataFromDB(from, to);
}
我应该怎么做才能确保从用户那里得到的日期符合ISO 8601 dateOptionalTime
格式?我可以应用多种模式来实现吗?
您也可以创建一个转换器,它将处理它。我在下面的示例中使用了OffsetDateTime,但是可以轻松地将其替换为LocalDateTime。有关详细的文章,请参考以下网址-
http: //www.baeldung.com/spring-mvc-custom-data-
binder
甚至我有一段时间都在为此而苦苦挣扎,而且没有用。诀窍是使用@Component
注释并为我完成了注释。
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
@Component
public class OffsetDateTimeConverter implements Converter<String, OffsetDateTime> {
@Override
public OffsetDateTime convert(final String source) {
if (source == null || source.isEmpty()) {
return null;
}
return OffsetDateTime.parse(source, DateTimeFormatter.ISO_OFFSET_DATE_TIME);
}
}
我使用Spring Framework作为我的服务API,使用作为日期时间解析。具体地说,我使用的是,它允许用户灵活地只使用日期,或者同时使用日期和时间,这是一个要求。 我尝试过使用的多种变体,以及在format中指定字符串,但无论如何都没有成功。 我应该做什么来确保我从用户那里获得的日期符合格式?我可以应用多个模式来实现它吗?
因此,有一个关于web应用程序的部分,用户可以向其中输入事件,web服务将这些事件以以下格式发送到移动应用程序: 我在尝试将字符串转换为日期时遇到了问题,这样我就可以从事件中获得时间(也可以在正确的时区中格式化),例如,这里有一个出现在“2015-03-20T20:00:00-07:00”上的字符串,当我拉动时,时间应该是太平洋时间1PM。但我得到的不是8PM就是3AM(这取决于我是否将UTC缩写
问题内容: 我正在使用bootstrap-datetimepicker和ISO8601 datetime格式,如其选项部分所述 在我的控制器中 它以(console.log)将数据发送到后端 并保存为数据库 在我的模板中 我在HTML上看到的输出为 但是根据Angular doc,它应该用于格式 我想念的是什么? 问题答案: 现在,我已经创建了一个过滤器 作为依赖项添加为 并用作 并将日期显示为
有没有办法将ISO8601日期与Java进行比较?比如,知道字符串日期是否是良好的格式,知道月份是否为负数,以及 我还在搜索如何知道互联网上是否有课程可以比较两个ISO8601日期?比如,如果我有:2000-12-12和1999-05-06。我如何比较这两个日期,使之在年、月和日之间有准确的差异?
问题内容: 我正在尝试使用Jackson 将ISO8601格式的日期反序列化为Java8 。我向ObjectMapper注册了JavaTimeModule,并关闭了该设置。 但是,如果尝试反序列化,它将无法正常工作,因为JavaTimeModule似乎只会反序列化具有UTC时区偏移量的日期时间(例如)。然后,我尝试使用如下注释: 像这样: 但是,这些都不起作用,我得到一个例外: 这意味着将忽略ti
我正在尝试使用Jackson将ISO8601格式的日期反序列化为Java8。我向ObjectMapper注册了JavaTimeModule,并关闭了设置。 但是,如果试图反序列化将不起作用,因为JavaTimeModule似乎只会反序列化使用UTC时区偏移量格式化的日期时间(例如)。然后我尝试使用注释,如下所示: 就像这样: 然而,这两种方法都不起作用,我得到了一个例外: 这意味着timezone