package com.kkmall.risk.common.utils;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLConnection;
import java.util.Properties;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
/**
* 对JAVA资源文件操作工具类
* 该类为配置类
*
*/
public class PropertyContext {
private Properties propertie;
private String filePath;
private String coding = "UTF-8";
private static PropertyContext context = null;
public static PropertyContext PropertyContextFactory(String pathFile) {
if (StringUtils.isNotBlank(ObjectUtils.toString(context)))
return context;
return new PropertyContext(pathFile);
}
private PropertyContext() {
// TODO Auto-generated constructor stub
}
/**
* 初始化 propertie 对像
*
* @param pathFile
*/
private PropertyContext(String pathFile) {
// TODO Auto-generated constructor stub
Properties prope;
InputStream inputStream = null;
try {
URLConnection urlConnection = this.getFileCon(pathFile);
if (StringUtils.isBlank(ObjectUtils.toString(urlConnection))) {
System.out.println("YSLog:"+"ERROR File:" + pathFile + " not find!");
return;
} else {
inputStream = urlConnection.getInputStream();
}
if (StringUtils.isNotBlank(ObjectUtils.toString(inputStream))) {
prope = new Properties();
} else {
System.out.println("YSLog:"+"ERROR File:" + pathFile + " not find!");
return;
}
prope.load(inputStream);
this.propertie = prope;
this.filePath = pathFile;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
try {
if (StringUtils.isNotBlank(ObjectUtils.toString(inputStream))) {
inputStream.close();
inputStream = null;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 初始化 propertie 对像
*
* @param pathFile
*/
public PropertyContext(String pathFile, String coding) {
// TODO Auto-generated constructor stub
Properties prope;
InputStream inputStream = null;
try {
URLConnection urlConnection = this.getFileCon(pathFile);
if (StringUtils.isBlank(ObjectUtils.toString(urlConnection))) {
System.out.println("weixinLog:"+"ERROR File:" + pathFile + " not find!");
return;
} else {
inputStream = urlConnection.getInputStream();
}
if (StringUtils.isNotBlank(ObjectUtils.toString(inputStream))) {
prope = new Properties();
} else {
System.out.println("weixinLog:"+"ERROR File:" + pathFile + " not find!");
return;
}
prope.load(inputStream);
this.propertie = prope;
this.filePath = pathFile;
this.coding = coding;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
try {
if (StringUtils.isNotBlank(ObjectUtils.toString(inputStream))) {
inputStream.close();
inputStream = null;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 得到URLConnection 对像
*
* @param filename
* @return URLConnection
*/
private URLConnection getFileCon(String filename) {
try {
Resource resource = new ClassPathResource(filename);
if (resource.exists()) {
return resource.getURL().openConnection();
} else {
System.out.println("weixinLog:"+"ERROR File:" + filename + " not find!");
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public String getValue(String key) {
try {
String value = this.propertie.getProperty(key);
if (StringUtils.isNotBlank(value)) {
byte[] bytes = value.getBytes("iso8859-1");
String str = new String(bytes, this.coding);
return str;
}
return null;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
public String get(String key) {
try {
return this.propertie.getProperty(key);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
public String getChinese(String key) {
try {
String value = this.propertie.getProperty(key);
if (StringUtils.isNotBlank(value)) {
byte[] bytes = value.getBytes("iso8859-1");
String str = new String(bytes, "GBK");
return str;
}
return null;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
}
测试类:
package com.kkmall.risk.common.utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 根据时间验证数据是否有效
*
* @author gan
*
* 2018年10月17日
*/
public class DataValidity {
private static PropertyContext propertyContext = PropertyContext.PropertyContextFactory("config.properties");
private static final String DAY = propertyContext.get("day");
public static Boolean validity(Date date1) {
Date date2 = new Date();
int day = differentDaysByMillisecond(date1, date2);
if (day >= Integer.parseInt(DAY) ) {
return true;
}
return false;
}
public static int differentDaysByMillisecond(Date date1, Date date2) {
int days = (int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24));
return days;
}
public static void main(String[] args) {
String dateStr = "2008-1-1 1:21:28";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try
{
Date date = format.parse(dateStr);
System.out.println(validity(date));
} catch (ParseException e) {
e.printStackTrace();
}
}
}
两个类写完,你还要创建config.properties文件:
day=30