审查视图

src/main/java/com/sy/utils/DateTimeConverter.java 1.9 KB
1 2 3 4 5 6 7 8 9 10 11
package com.sy.utils;

import com.thoughtworks.xstream.converters.ConversionException;
import com.thoughtworks.xstream.converters.basic.AbstractSingleValueConverter;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTimeConverter extends AbstractSingleValueConverter {
zhangFan authored
12
13 14 15 16
	private static final DateFormat DATE = new SimpleDateFormat("yyyy-MM-dd");
	private static final DateFormat DATETIME = new SimpleDateFormat("yyyyMMddHHmmss");
	private static final DateFormat DATETIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	private static final DateFormat DEFAULT_DATEFORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
zhangFan authored
17 18
	private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
	private static final SimpleDateFormat date = new SimpleDateFormat("yyyyy-MM-dd");
zhangFan authored
19
20 21 22
	public boolean canConvert(Class type) {
		return type.equals(Date.class);
	}
zhangFan authored
23
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
	public Object fromString(String str) {
		try {
			if(str.length()>0) {
				if(str.indexOf("T")>0) {
					return DEFAULT_DATEFORMAT.parseObject(str);
				}
				if(str.indexOf("-")>0 && str.indexOf(":")>0) {
					return DATETIME_FORMAT.parseObject(str);
				}
				if(str.length()==14) {
					return DATETIME.parseObject(str);
				}
				if(str.length()==10) {
					return DATE.parseObject(str);
				}
zhangFan authored
39 40 41 42
				if(str.length()>14){
					str= str.substring(0,15);
					return DATETIME.parseObject(str);
				}
43 44 45 46 47 48 49 50
			}else {
				return null;
			}
		} catch (ParseException e) {
			e.printStackTrace();
		}
		throw new ConversionException("Cannot parse date " + str);
	}
zhangFan authored
51
zhangFan authored
52 53
	public static String getFormat() {
		return dateFormat.format(new Date());
54
	}
zhangFan authored
55
zhangFan authored
56 57
	public String dateFormat() {
		return dateFormat.format(new Date());
zhangFan authored
58
	}
zhangFan authored
59 60
	public String dateTimeFormat() {
		return DATETIME_FORMAT.format(new Date());
zhangFan authored
61
	}
zhangFan authored
62 63 64 65
	public static String getDay() {
		return date.format(new Date());
	}
66
}