`

自定义日期和字符串之间的类型转换器另附把字符串解析成日期的方法

阅读更多
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;

public class DateTypeConverter extends DefaultTypeConverter {
	@Override
	public Object convertValue(Map<String, Object> context, Object value,Class toType) {
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
		//format.setLenient(false);	//设置输入的字符串形式必须符合此对象的格式化方法使用的形式
		try {
			if(toType == Date.class) {		//当字符串向Date类型转换时
				String[] params = (String[]) value;	//request.getParameterValues()
				return dateFormat.parse(params[0]);
			} else if(toType == String.class) {	//当Date转换成字符串时
				Date date = (Date) value;
				return dateFormat.format(date);
			}
		} catch (ParseException e) {}
		return null;
	}
}



把字符串解析成日期如下:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;

public class Demo {

	public static void main(String[] args) {
		String strdate = "1990-12-32";
		
		/*SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		format.setLenient(false);
		try {
			Date date = format.parse(strdate);
			String localdate = format.format(date);
			System.out.println(localdate);
		} catch (ParseException e) {
			System.out.println("格式不对");
		}*/
		
		//用这个类转换12-32时就会抛异常
		DateLocaleConverter dcl = new DateLocaleConverter();
		
		try {
			dcl.convert(strdate, "yyyy-MM-dd");
		} catch (Exception e) {
			System.out.println("格式不对");
		}
	}
}

分享到:
评论

相关推荐

    自定义全局类型转换器

    本文将深入探讨如何实现自定义全局类型转换器,以提升系统的灵活性和扩展性。 Spring MVC中的类型转换主要由`WebDataBinder`类负责,它使用`Converter`或`Formatter`接口进行转换。`Converter`接口用于基本类型的...

    自定义类型转换器

    这样,每当应用程序需要将字符串转换为日期或反之亦然时,都会自动使用指定的`DateConverter`。 #### 四、总结 通过上述介绍,我们可以了解到自定义类型转换器在Java中的作用以及其实现方式。无论是局部还是全局...

    Asp.net中的日期转化为字符串汇总

    这两个方法用于将字符串解析为日期,同时指定期望的格式。例如: ```csharp string input = "2022-08-06"; DateTime parsedDate; DateTime.TryParseExact(input, "yyyy-MM-dd", null, System.Globalization....

    C#中字符串转换为计算公式-并进行计算的方法(自定义公式的计算)

    ### C#中字符串转换为计算公式并进行计算的方法(自定义公式的计算) 在软件开发过程中,有时我们需要处理用户输入的动态表达式或公式,并能够即时计算这些表达式的值。这种需求常见于科学计算器应用、数学软件或者...

    字符串转换成计算数值公式(c#)

    总的来说,C#中字符串转换为数学计算公式的过程涉及字符串解析、表达式树构建、计算规则的实现等步骤。对于简单的场景,可以直接使用内置的转换函数;而对于复杂情况,可能需要编写自定义解析器,或者借助第三方库来...

    struts 2.0 自定义类型转换器 注册类型转换器 入门实例 简单实例

    例如,假设我们需要将字符串转换为自定义的`CustomDate`类,可以创建一个名为`CustomDateConverter`的类。 - 在这个类中,重写`convertValue()`方法,这是进行实际类型转换的地方。在这个方法中,我们可以编写代码...

    Struts自定义类型转换器

    4. **转换示例**:例如将字符串转换为日期。 ```java public class MyConverter implements Converter { @Override public Object convert(Class type, Object value) { if (value instanceof String) { try {...

    step7-300 16进制转换成字符串

    这在工业自动化领域,特别是PLC(可编程逻辑控制器)编程中是至关重要的,因为PLC与上位机通信时,数据通常以16进制形式传输,而显示或处理时可能需要转换为易于理解和读取的字符串形式。 16进制是一种基于16的数制...

    struts2自定义类型转换器

    在实际开发中,有时我们需要对默认的类型转换器进行扩展,以满足特定的数据转换需求,例如将前端传入的字符串转换为Date类型。这就是"struts2自定义类型转换器"的主题。 首先,理解Struts2的类型转换机制。当Struts...

    C++解析json字符串

    8. **自定义类型与JSON**:nlohmann/json库允许你自定义类型与JSON的转换规则,通过重载`to_json()`和`from_json()`函数,使得自定义类型可以直接与JSON对象交互。 9. **性能考虑**:虽然nlohmann/json库性能优秀,...

    C语言实现的 json格式字符串与结构体自动相互转化

    cjson是一个用C语言编写的轻量级JSON解析器和生成器,能够处理JSON格式的数据,将其转换为C语言的数据结构,或者将C语言的数据结构转换为JSON格式的字符串。 在C语言中,结构体是一种自定义数据类型,可以用来封装...

    springmvc自定义属性编辑器和参数解析器

    - 重写`setAsText()`方法,将字符串转换为你需要的类型。例如,如果要处理JSON字符串,可以使用Jackson库的`ObjectMapper`来反序列化。 - 可选地,实现`getAsText()`方法,如果需要在显示或回显时转换为特定格式的...

    asp字符串转json对象类

    本知识点主要关注如何将ASP中的字符串转换为JSON对象,特别地,这个过程是通过原生的VBScript(Visual Basic Script)实现的,而不是依赖于第三方库。 首先,我们需要理解VBScript中的JSON解析概念。由于ASP.NET...

    复杂的json字符串解析(真实案例)

    在解析复杂的JSON字符串时,Gson提供了强大的功能,包括对嵌套结构的支持和自定义类型适应。 首先,我们要了解JSON的基本结构。JSON主要由对象(键值对)和数组(有序元素集合)构成,它们都以花括号包围。在Java中...

    struts2全局转换的问题

    Struts2提供了内置的转换器(Converters)来实现这一目标,例如将字符串转换为整数、日期等。 2. **全局转换器的注册**:要定义全局转换器,你需要在`struts.xml`配置文件中声明它。这通常是在`&lt;constant&gt;`标签内...

    字符串表达式解析求值算法

    这个算法的核心任务是将由字符组成的字符串转换为可执行的数学表达式,同时处理变量和各种数学函数。 首先,`Parser.java`文件很可能是实现解析算法的主要类。在Java中,一个解析器通常会包含方法来分解输入的字符...

    json字符串转换c++类对象

    本篇文章将深入探讨如何将JSON字符串转换为C++类对象,以实现数据的有效操作和管理。 首先,我们需要一个库来解析JSON字符串。在C++中,有许多流行的JSON库可供选择,例如nlohmann/json、jsoncpp、RapidJSON等。...

    西门子PLC字符串转实数

    例如,S7-1200/1500系列PLC中的“VAL”函数可以将字符串转换为不同的数值类型,包括实数。在使用“VAL”函数时,需要确保字符串格式正确,否则可能引发错误。 ```scl VAR strValue : STRING; // 输入字符串 real...

    解析字符串,按照运算表达式来计算出最终结果值.rar

    - 字符串解析是将一个字符串分解成有意义的部分,以便进行进一步处理。在C#中,可以使用`String.Split()`方法分割字符串,或者通过正则表达式(`Regex`类)进行更复杂的模式匹配和提取。 2. **表达式解析**: - ...

    vc++识别字符串中的时间

    - 使用`std::chrono::parse`函数或自定义解析器,将字符串形式的时间转换为`std::chrono::system_clock::time_point`对象。 4. **错误处理**: - 在解析过程中,可能会遇到无效的日期和时间格式,因此需要良好的...

Global site tag (gtag.js) - Google Analytics