All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sghd.common.utils.converter.StringToDateTimeConverter Maven / Gradle / Ivy

The newest version!
package com.sghd.common.utils.converter;

import java.text.ParseException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.convert.converter.Converter;

import com.sghd.common.utils.time.DateThreadUtils;

public class StringToDateTimeConverter implements Converter {

	private static final Logger logger = LoggerFactory.getLogger(StringToDateTimeConverter.class);

	private static final Map FORMATTERS_MAP = new HashMap();
	static {
		FORMATTERS_MAP.put("yyyy-MM".length(), "yyyy-MM");
		FORMATTERS_MAP.put("yyyy-MM-dd".length(), "yyyy-MM-dd");
		FORMATTERS_MAP.put("yyyy-MM-dd HH:mm:ss".length(), "yyyy-MM-dd HH:mm:ss");
		FORMATTERS_MAP.put("yyyyMMddHHmmss".length(), "yyyyMMddHHmmss");
	}

	@Override
	public Date convert(String source) {
		String format = FORMATTERS_MAP.get(source.length());
		if (format == null) {
			logger.warn("字符串[{}]不符合日期格式要求", source);
			throw new IllegalArgumentException("字符串[" + source + "]不符合格式要求");
		}

		//System.out.println(Thread.currentThread().getName());
		try {
			return DateThreadUtils.trystr2date(source, format);
		} catch (ParseException e) {
			logger.warn("字符串[{}]不符合格式要求[{}]", source);
		}
		throw new IllegalArgumentException("字符串[" + source + "]不符合格式要求");
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy