`

Springboot 加入日期 转换器

阅读更多
    /**
     * 自定义 数据转换器
     * @return
     */
    @Bean
    public ConversionServiceFactoryBean conversionService(){
        ConversionServiceFactoryBean conversionServiceFactoryBean=new ConversionServiceFactoryBean();
        Set<Converter> converters=new HashSet<Converter>();
        converters.add(new DateConverter());//日期转换器
        conversionServiceFactoryBean.setConverters(converters);
        return conversionServiceFactoryBean;
    }

 

 

package cn.freshz.common;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.springframework.core.convert.converter.Converter;


/**
 * SpringMVC 自定义 日期转换器
 *
 * @author :<a href="mailto:zyj@freshz.cn">章英杰</a>
 * @date :2016-09-05 14:03:54
 */
public class DateConverter implements Converter<String, Date>  {

	/**
	 * 可格式化 的日期 字串
	 */
	private static final List<String> formarts = new ArrayList();

	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");
	}

	@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 {
			throw new IllegalArgumentException("Invalid boolean value '" + source + "'");
		}
	}

	/**
	 * 功能描述:格式化日期
	 *
	 * @param dateStr String 字符型日期
	 * @param format  String 格式
	 * @return Date 日期
	 */
	public  Date parseDate(String dateStr, String format) {
		Date date=null;
		try {
			DateFormat dateFormat = new SimpleDateFormat(format);
			date = (Date) dateFormat.parse(dateStr);
		} catch (Exception e) {
		}
		return date;
	}

	public static void main(String[] args) {
		System.err.println(new DateConverter().convert("2014-04"));
	}
}

 

 

分享到:
评论

相关推荐

    SpringBoot中自定义消息转换器示例源码

    Spring Boot默认提供了多种消息转换器,如FastjsonHttpMessageConverter、Jackson的MappingJackson2HttpMessageConverter等。然而,在某些特定场景下,我们可能需要自定义消息转换器来满足特定的序列化或反序列化...

    SpringBoot 枚举类型转换

    在SpringBoot 项目中实现枚举转换,需要创建BaseEnumTypeHandler 类继承BaseEnum 和 BaseTypeHandler 等相关类。想要详细了解如何实现枚举转换的话,那你快点下载后深入理解吧!

    Springboot驼峰下划线转换配置

    Springboot驼峰下划线转换配置

    Java SpringBoot实现的过滤器(和拦截器)控制登录页面跳转

    这个压缩包可能包含了一个示例项目,展示了如何在SpringBoot中配置和使用过滤器或拦截器进行登录验证。你可能需要解压并导入到IDE中,按照提供的说明运行和测试,以便更好地理解和学习这个功能。 通过深入理解这些...

    Springboot DTO字符字段与日期字段的转换问题.docx

    在这种情况下,Spring Boot默认并不会自动将前端传来的字符串日期转换为Date对象,反之亦然。这是因为JSON标准并没有定义日期的特定格式,所以需要我们手动处理这种转换。 在上述例子中,`UserDTO`类有一个`...

    springboot实现消息转换、切面AOP和Redis缓存

    例如,当你需要将JSON数据转换为Java对象或反之亦然时,SpringBoot会自动配置一些默认的转换器,如`Jackson2JsonHttpMessageConverter`。你可以通过扩展`WebMvcConfigurer`接口并覆盖`extendMessageConverters`方法...

    Flot+springboot+mybatis 日期格式的折线图

    2. **后端**:在SpringBoot应用中,设置控制器接收Ajax请求,使用MyBatis查询数据库,获取指定日期范围内的数据。这些数据包括对应的日期和具体数值,可能存储在一个包含多条记录的列表或数组中。 3. **数据处理**...

    SpringBoot整合Mybatis完整详细版含注册、登录、拦截器配置

    在本项目中,我们主要探讨的是如何将SpringBoot与Mybatis进行深度整合,并实现完整的注册、登录功能,以及设置拦截器来控制权限访问。SpringBoot以其简洁的配置和快速的开发能力,配合Mybatis的灵活数据库操作,可以...

    springboot 文件转换PDF多线程

    根据网上的资料总结的一个springboot 转换pdf Word文档大小最好2m以下 需要安装OpenOffice.org 3.3 链接:https://pan.baidu.com/s/1onrkhBCNlGLEmf3hPwzXWw 密码:8h5a

    Springboot 全局日期格式化处理的实现

    日期格式化是指将日期和时间转换为特定的格式,以便于在应用程序中使用。在 Springboot 应用程序中,日期格式化处理是一个重要的任务,因为日期和时间是应用程序中的核心元素。 在本文中,我们将介绍 Springboot ...

    springboot利用拦截器打印各个接口的响应时间.rar

    springboot利用拦截器打印各个接口的响应时间,快速统计各接口执行速度,方便接口优化。springboot利用拦截器打印各个接口的响应时间,快速统计各接口执行速度,方便接口优化。springboot利用拦截器打印各个接口的响应...

    Springboot过滤器禁止ip频繁访问功能实现

    "Springboot过滤器禁止ip频繁访问功能实现" Springboot过滤器禁止ip频繁访问功能实现是指在Springboot项目中,通过编写一个过滤器来限制ip频繁访问的功能实现。这项功能可以防止恶意ip的访问,保护服务器的安全。 ...

    SpringBoot开发WebService之Axis示例

    在本文中,我们将深入探讨如何使用SpringBoot框架开发基于Axis的Web服务。SpringBoot以其便捷的启动和配置方式,已经成为Java开发中的首选框架之一。而 Axis 是一个流行的Apache项目,用于创建和部署Web服务,它提供...

    SpringBoot 简单登录功能 拦截器实现.zip

    SpringBoot 简单登录功能 拦截器实现。 在实际开发中,我们经常会遇到某些页面需要登录才能查看的情况。下面使用拦截器实现该功能,在用户没有登录的情况下,将网站的所有访问都指向登录页面。 Springboot 登录

    Springboot配置XSS过滤器XssFilter.zip

    直接可以运行,包含测试类,对HTML和SQL进行过滤,方便扩展。并且可以配置不拦截的路径,包含注释,方便学习。 博客地址:https://blog.csdn.net/u011974797/article/details/121792680

    狂神SpringBoot笔记+源码

    狂神SpringBoot笔记+源码 狂神SpringBoot笔记+源码 狂神SpringBoot笔记+源码 狂神SpringBoot笔记+源码 狂神SpringBoot笔记+源码 狂神SpringBoot笔记+源码 狂神SpringBoot笔记+源码 狂神SpringBoot笔记+源码 狂神...

    java springboot tcp通讯 demo

    java springboot tcp通讯 demo ;

    springBoot项目的代码生成器

    针对Java springBoot项目的代码生成器,可按照所选择的表、视图 直接生成对应的实体、Controller、Service代码,体积小、速度快,兼容所有版本的windows和Mysql,无需安装,下载即可使用!

    SpringBoot视频教程 百度云

    01-SpringBoot介绍 02-SpringBoot为什么火? 03-第一个SpringBoot程序 04-SpringBoot访问静态文件 05-SpringBoot捕获全局异常 06-SpringBoot集成Thymeleaf 07-Thymeleaf数据展示 08-SpringBoot集成Mybatis 09-...

Global site tag (gtag.js) - Google Analytics