`

自定义时间格式转换器

 
阅读更多

自定义时间格式转换器

public class DateConverter implements Converter {
	/**
	 * 时间转换格式
	 */
	public static final String[] DEFAULT_FORMATS = { "yyyy-MM-dd HH:mm:ss",
	        "yyyy-M-d HH:mm:ss", "yyyy-MM-dd H:m:s", "yyyy-M-d H:m:s",
	        "yyyy/MM/dd HH:mm:ss", "yyyy-M-d HH:mm:ss", "yyyy/MM/dd H:m:s",
	        "yyyy/M/d H:m:s", "HH:mm:ss", "H:m:s", "yyyy-MM-dd", "yyyy-M-d",
	        "yyyy/MM/dd", "yyyy/M/d" };
	private SimpleDateFormat sdf = new SimpleDateFormat();
	private List<String> formats;

	public DateConverter() {
		formats = Arrays.asList(DEFAULT_FORMATS);
	}

	public void addFormat(String format) {
		formats.add(format);
	}

	@SuppressWarnings("unchecked")
	@Override
	public Object convert(Class c, Object value) {
		if (value == null) {
			return null;
		}
		if (value instanceof String && value.toString().trim().equals("")) {
			return null;
		}
		if (c == java.util.Date.class) {
			Date v = getDate(value);
			if (v != null) {
				return v;
			}
		}
		else if (c == java.sql.Date.class) {
			Date v = getDate(value);
			if (v != null) {
				return new java.sql.Date(v.getTime());
			}
		}
		else if (c == java.sql.Time.class) {
			Date v = getDate(value);
			if (v != null) {
				return new java.sql.Time(v.getTime());
			}
		}
		else if (c == java.sql.Timestamp.class) {
			Date v = getDate(value);
			if (v != null) {
				return new java.sql.Timestamp(v.getTime());
			}
		}
		return value;
	}

	public Date getDate(Object value) {
		for (int i = 0; i < formats.size(); i++) {
			Date v = tryConvert(value, formats.get(i));
			if (v != null) {
				return v;
			}
		}
		return null;
	}

	public Date tryConvert(Object value, String format) {
		try {
			sdf.applyPattern(format);
			Date v = sdf.parse(String.valueOf(value));
			return v;
		}
		catch (Exception e) {
			return null;
		}
	}
}

 

分享到:
评论

相关推荐

    自定义struts时间转换器

    自定义Struts时间转换器可以帮助我们更灵活地处理时间格式,满足不同场景下的时间显示和存储需求。 在Java中,时间的表示通常使用`java.util.Date`、`java.time.LocalDate`或`java.time.LocalDateTime`等类。然而,...

    易语言时间格式转换器.rar

    易语言时间格式转换器是一款基于易语言开发的实用工具,主要功能是帮助用户将时间数据在不同的格式之间进行转换。易语言是中国本土的一种编程语言,它以“易”为特点,旨在降低编程的难度,让普通用户也能进行程序...

    DAV格式转换器

    7. **快速转换**:利用高效的编码算法,DAV格式转换器能够在较短的时间内完成转换任务,提高工作效率。 8. **安全无毒**:作为一款专业软件,它应该不会携带任何恶意软件或病毒,确保用户的系统安全。 9. **兼容性...

    TS流格式转换器 TS流格式转换器

    在实际应用中,TS流格式转换器可能还有其他高级功能,如批量转换、预设设置、自定义输出参数、视频裁剪与合并等。这些特性有助于用户根据自身需求优化转换过程,提高工作效率。 总之,TS流格式转换器是数字媒体工作...

    艾奇视频格式转换器(白金版)注册码

    6. **快速转换速度**:得益于高效的编码技术和多核处理器的支持,艾奇视频格式转换器能实现快速的转换速度,节省用户等待时间。 7. **注册码**:软件提供注册码是为了激活其全部功能,未注册版本可能有功能限制或...

    易语言时间格式转换器

    例如,我们可以通过指定“年-月-日 时:分:秒”格式,将当前时间转换成如"2023-04-05 14:30:00"的字符串。参数通常包括日期时间对象和输出格式字符串。 2. **字符串到日期时间**:与之相反,这个函数用于将符合特定...

    万能格式转换器

    《万能格式转换器——全面解析与应用指南》 在数字化时代,文件格式转换成为了日常工作和生活中不可或缺的一部分。"万能格式转换器"正如其名,是一款强大的工具,旨在帮助用户轻松解决各种文件格式不兼容的问题。这...

    Struts 自定义转换器

    Struts框架是Java Web开发中的一个关键组件,它主要用于构建MVC(模型-视图-控制器)架构的应用程序。...在实际项目中,自定义转换器常用于处理复杂的业务逻辑,如货币转换、时间格式化、特殊字符过滤等场景。

    易语言时间格式转换器.zip

    "易语言时间格式转换器"显然是一款利用易语言编写的工具,主要用于处理时间格式的转换。在计算机科学中,时间格式转换是一个常见的需求,因为不同的系统、应用或数据库可能需要时间数据以不同的格式存储或显示。 ...

    最新手机视频格式转换器

    "最新手机视频格式转换器"这一标题暗示了我们讨论的主题是一款专为智能手机设计的软件,它的主要功能是将不同格式的视频文件转换成适合在手机上播放的格式。随着科技的发展,手机已成为多媒体消费的主要平台,但不同...

    易语言时间格式转换器.7z

    易语言时间格式转换器是一款基于易语言开发的实用工具,主要功能是帮助用户将时间数据在不同的格式之间进行转换。易语言是中国自主研发的一种简单易学的编程语言,它以中文编程为特色,使得非计算机专业人员也能快速...

    图片格式转换器

    《酷梦图片格式转换器2.0版》是一款高效便捷的单文件图片格式转换工具,专为用户解决图片格式不兼容或需要批量转换的问题。它支持多种常见的图片格式,如JPEG、PNG、BMP、GIF等,可以轻松将图片转换成你需要的格式。...

    音频文件格式转换器

    音频文件格式转换器是一种工具,专门用于将不同的音频文件格式转化成WAV(Waveform Audio File Format)格式。WAV是微软与IBM共同开发的一种无损音频文件格式,以其高质量和广泛的兼容性而受到专业人士的青睐。然而...

    ios-自定义时间选择器.zip

    在给定的“ios-自定义时间选择器.zip”压缩包中,很可能包含了一个自定义的时间选择器实现,用于提供更灵活的UI样式或功能扩展。以下是对这个自定义时间选择器的详细解读。 1. **UIPickerView**:在iOS中,标准的...

    歌词格式转换器

    4. 自定义设置:部分转换器允许用户自定义输出格式,例如是否保留原文件的注释、作者信息等。 总之,歌词格式转换器是音乐爱好者不可或缺的工具,通过它可以轻松解决歌词显示的问题,提升听歌体验。LrcCon301作为...

    六十四万能格式转换器.7z

    "六十四万能格式转换器"是一款功能强大的文件转换工具,旨在帮助用户处理各种不同类型的文件格式转换问题。这款软件支持多种格式之间的转换,包括但不限于文档、图片、音频、视频等,极大地提升了用户在日常工作和...

    一款好用的图片转换工具,图片格式转换器

    本文将详细介绍“图片格式转换器”这一软件,它是一款高效且易于使用的工具,能够帮助用户轻松地将图片从一种格式转换为另一种格式。 1. **图片格式的重要性** 不同的图片格式有不同的特点和用途。例如,JPEG适合...

    3gp格式多功能视频格式转换器.

    3GP格式多功能视频格式转换器是一种专为移动设备设计的工具,主要功能是将各种常见的视频格式转换为3GP格式,以便在手机或其他移动设备上播放。3GP是一种由3rd Generation Partnership Project(3GPP)制定的多媒体...

    音频格式转换器

    3. **速度与效率**:高性能的转换器可以更快地完成任务,节省时间。 4. **无损转换**:如果原始音频质量非常重要,应选择支持无损格式转换的工具。 5. **版权保护**:注意不要违反版权法律,只转换个人合法拥有的...

    格式转换器

    10. **自定义设置**:对于高级用户,格式转换器可能提供自定义设置,如视频分辨率、音频采样率、图像质量等,以便根据具体需求调整输出文件的属性。 总之,“格式转换器”作为一种工具,旨在解决跨平台、跨设备的...

Global site tag (gtag.js) - Google Analytics