java处理前端UTC时间等(springboot项目)
场景
前端传的UTC时间yyyy-MM-dd’T’HH:mm:ss.SSS’Z’,或者其他时间的时候,java后台全局转换时间字符串为Date类型或者LocalDateTime类型
一是SpringMVC的针对application/x-www-form-urlencoded表单请求使用转换器设置全局转换
@Component
public class StringToDateConverter implements Converter<String, Date> {
private static final List<String> formarts = new ArrayList<>(4);
static{
formarts.add("yyyy-MM");
formarts.add("yyyy-MM-dd");
formarts.add("yyyy-MM-dd hh:mm");
formarts.add("yyyy-MM-dd hh:mm:ss");
formarts.add("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
}
@Override
public Date convert(String source) {
String value = source.trim();
if ("".equals(value)) {
return null;
}
if(source.matches("^\\d{4}-\\d{1,2}$")){
return parseDate(source, formarts.get(0));
}else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")){
return parseDate(source, formarts.get(1));
}else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")){
return parseDate(source, formarts.get(2));
}else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")){
return parseDate(source, formarts.get(3));
}else if (source.contains("T")) {
try{
return parseDateZone(source, formarts.get(4), ZoneId.of("UTC"));
} catch (Exception e) {
th

本文介绍了在SpringBoot项目中处理前端传来的UTC时间的两种场景。一是针对application/x-www-form-urlencoded表单请求,使用SpringMVC转换器将UTC时间字符串全局转换为Date或LocalDateTime。二是针对application/json请求,通过jackson配置实现全局时间序列化转换。详细内容包括转换器和配置类的实现。
最低0.47元/天 解锁文章
1263

被折叠的 条评论
为什么被折叠?



