package com.lvyou.util;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import org.apache.log4j.Logger;
public class DateUtil {
final static Logger logger = Logger.getLogger(DateUtil.class);
private final static String[] months = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec", };
public final static Date parseComplicateDate(String str) {
try{
if (StringUtil.isNullOrEmpty(str))
return null;
String[] strs = str.split(" ");
int nYear = Integer.parseInt(strs[5]);
int nMonth = 0;
for (int i = 0; i < months.length; i++) {
if (months[i].equals(strs[1])) {
nMonth = i;
break;
}
}
int nDay = Integer.parseInt(strs[2]);
String strTime = strs[3];
String[] strTimes = strTime.split(":");
int nHour = Integer.parseInt(strTimes[0]);
int nMinute = Integer.parseInt(strTimes[1]);
int nSecond = Integer.parseInt(strTimes[2]);
Calendar cal = new GregorianCalendar(nYear, nMonth, nDay, nHour,
nMinute, nSecond);
Date aDate = cal.getTime();
return aDate;
}
catch (ArrayIndexOutOfBoundsException e){
logger.warn("", e);
return null;
}
catch (NumberFormatException e){
logger.warn("", e);
return null;
}
catch (Exception e){
logger.warn("", e);
return null;
}
}
/**
* 返回用户指定日期的前或后n天的字符串 正数为向后n天,负数相反
* @param date
* @param day
* @return
* @throws ParseException
*/
public static String getNumToDate(String date,int day) throws ParseException
{
Calendar c = Calendar.getInstance();
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd");
c.setTime(sdf1.parse(date));
c.add( Calendar.DAY_OF_MONTH, day );
return sdf1.format(c.getTime());
}
public final static Date getYyyyMmDdHhMmss(String str) {
if (StringUtil.isNullOrEmpty(str))
return null;
try{
String[] strs = str.split(" ");
String[] strDays = strs[0].split("-");
int nYear = Integer.parseInt(strDays[0]);
int nMonth = Integer.parseInt(strDays[1]);
int nDay = Integer.parseInt(strDays[2]);
String[] strTimes = strs[1].split(":");
int nHour = Integer.parseInt(strTimes[0]);
int nMinute = Integer.parseInt(strTimes[1]);
int nSecond = Integer.parseInt(strTimes[2]);
Calendar cal = new GregorianCalendar(nYear, nMonth-1, nDay, nHour,
nMinute, nSecond);
return cal.getTime();
}
catch (ArrayIndexOutOfBoundsException e){
logger.warn("", e);
return null;
}
catch (NumberFormatException e){
logger.warn("", e);
return null;
}
catch (Exception e){
logger.warn("", e);
return null;
}
}
/**
* 返回与指定日期n个月的日期
* @param date
* @param day
* @return
* @throws ParseException
*/
public static Date getMonthToDate(Date date,int month) throws ParseException
{
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.DAY_OF_MONTH, -month*30);
return c.getTime();
}
/**
* 返回用户指定日期的前或后n天的字符串 正数为向后n天,负数相反
* @param date
* @param day
* @return
* @throws ParseException
*/
public static Date getNumToDate(Date date,int day) throws ParseException
{
Calendar c = Calendar.getInstance();
c.add( Calendar.DAY_OF_MONTH, day );
return c.getTime();
}
/**
* 比较两个日期
* @param date1
* @param date2
* @return
*/
public static boolean compareDate(Date date1,Date date2)
{
Calendar c = Calendar.getInstance();
c.setTime(date1);
c.add( Calendar.DAY_OF_MONTH, 1 );
return c.getTime().getTime()>date2.getTime()?true:false;
}
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd");
System.out.println(autoCommit());
}
public final static Date getYyyyMmDdHhMm(String str) {
if (StringUtil.isNullOrEmpty(str))
return null;
try{
String[] strs = str.split(" ");
String[] strDays = strs[0].split("-");
int nYear = Integer.parseInt(strDays[0]);
int nMonth = Integer.parseInt(strDays[1]);
int nDay = Integer.parseInt(strDays[2]);
String[] strTimes = strs[1].split(":");
int nHour = Integer.parseInt(strTimes[0]);
int nMinute = Integer.parseInt(strTimes[1]);
int nSecond = 0;
Calendar cal = new GregorianCalendar(nYear, nMonth-1, nDay, nHour,
nMinute, nSecond);
return cal.getTime();
}
catch (ArrayIndexOutOfBoundsException e){
logger.warn("", e);
return null;
}
catch (NumberFormatException e){
logger.warn("", e);
return null;
}
catch (Exception e){
logger.warn("", e);
return null;
}
}
public final static Date getYyyyMmDdHhMmSsFlexible(String str) {
if (StringUtil.isNullOrEmpty(str))
return null;
try{
String[] strs = str.split(" ");
String[] strDays = strs[0].split("-");
int nYear = Integer.parseInt(strDays[0]);
int nMonth = Integer.parseInt(strDays[1]);
int nDay = Integer.parseInt(strDays[2]);
int nHour = 0;
int nMinute = 0;
int nSecond = 0;
if (strs.length > 1){
String[] strTimes = strs[1].split(":");
if (strTimes.length > 1)
nHour = Integer.parseInt(strTimes[0]);
if (strTimes.length > 2)
nMinute = Integer.parseInt(strTimes[1]);
if (strTimes.length > 3)
nSecond = Integer.parseInt(strTimes[2]);
}
Calendar cal = new GregorianCalendar(nYear, nMonth-1, nDay, nHour,
nMinute, nSecond);
return cal.getTime();
}
catch (ArrayIndexOutOfBoundsException e){
logger.warn("", e);
return null;
}
catch (NumberFormatException e){
logger.warn("", e);
return null;
}
catch (Exception e){
logger.warn("", e);
return null;
}
}
public final static Date getHhMm(String str) {
if (StringUtil.isNullOrEmpty(str))
return null;
try{
String[] strTimes = str.split(":");
int nHour = Integer.parseInt(strTimes[0]);
int nMinute = Integer.parseInt(strTimes[1]);
int nSecond = 0;
Calendar cal = new GregorianCalendar(nHour,
nMinute, nSecond);
return cal.getTime();
}
catch (ArrayIndexOutOfBoundsException e){
logger.warn("", e);
return null;
}
catch (NumberFormatException e){
logger.warn("", e);
return null;
}
catch (Exception e){
logger.warn("", e);
return null;
}
}
public final static Date getYyyyMmDd(String str) {
if (StringUtil.isNullOrEmpty(str))
return null;
try{
// String[] strs = str.split(" ");
String[] strDays = str.split("-");
int nYear = Integer.parseInt(strDays[0]);
int nMonth = Integer.parseInt(strDays[1]);
int nDay = Integer.parseInt(strDays[2]);
Calendar cal = new GregorianCalendar(nYear, nMonth-1, nDay, 0,
0, 0);
return cal.getTime();
}
catch (ArrayIndexOutOfBoundsException e){
logger.warn("", e);
return null;
}
catch (NumberFormatException e){
logger.warn("", e);
return null;
}
catch (Exception e){
logger.warn("", e);
return null;
}
}
public final static Date getYyyyMmDdNotHyphenated(String str) {
if (StringUtil.isNullOrEmpty(str))
return null;
try{
// String[] strs = str.split(" ");
int nYear = Integer.parseInt(str.substring(0, 4));
int nMonth = Integer.parseInt(str.substring(4, 6));
int nDay = Integer.parseInt(str.substring(6, 8));
Calendar cal = new GregorianCalendar(nYear, nMonth-1, nDay, 0,
0, 0);
return cal.getTime();
}
catch (ArrayIndexOutOfBoundsException e){
logger.warn("", e);
return null;
}
catch (NumberFormatException e){
logger.warn("", e);
return null;
}
catch (Exception e){
logger.warn("", e);
return null;
}
}
public final static Date getYyMmDd(String str) {
if (StringUtil.isNullOrEmpty(str))
return null;
try{
// String[] strs = str.split(" ");
String[] strDays = str.split("-");
int nYear = Integer.parseInt(strDays[0]);
nYear += 2000;
int nMonth = Integer.parseInt(strDays[1]);
int nDay = Integer.parseInt(strDays[2]);
Calendar cal = new GregorianCalendar(nYear, nMonth-1, nDay, 0,
0, 0);
return cal.getTime();
}
catch (ArrayIndexOutOfBoundsException e){
logger.warn("", e);
return null;
}
catch (NumberFormatException e){
logger.warn("", e);
return null;
}
catch (Exception e){
logger.warn("", e);
return null;
}
}
public final static Date getYyMmDdNotHyphenated(String str) {
if (StringUtil.isNullOrEmpty(str))
return null;
try{
int nYear = Integer.parseInt(str.substring(0,2));
nYear += 2000;
int nMonth = Integer.parseInt(str.substring(2,4));
int nDay = Integer.parseInt(str.substring(4,6));
Calendar cal = new GregorianCalendar(nYear, nMonth-1, nDay, 0,
0, 0);
return cal.getTime();
}
catch (ArrayIndexOutOfBoundsException e){
logger.warn("", e);
return null;
}
catch (NumberFormatException e){
logger.warn("", e);
return null;
}
catch (Exception e){
logger.warn("", e);
return null;
}
}
public final static String toYyMmdd(Date aDate){
if (aDate == null)
return "";
Calendar cal = new GregorianCalendar();
cal.setTime(aDate);
StringBuilder sb = new StringBuilder();
int nYear = cal.get(Calendar.YEAR);
nYear = nYear % 100;
int nMonth = cal.get(Calendar.MONTH);
nMonth++;
int nDay = cal.get(Calendar.DAY_OF_MONTH);
if (nYear < 10)
sb.append('0');
sb.append(nYear);
if (nMonth < 10)
sb.append('0');
sb.append(nMonth);
if (nDay < 10)
sb.append('0');
sb.append(nDay);
return sb.toString();
}
public final static String toHyphenatedYyMmdd(Date aDate){
if (aDate == null)
return "";
Calendar cal = new GregorianCalendar();
cal.setTime(aDate);
StringBuilder sb = new StringBuilder();
int nYear = cal.get(Calendar.YEAR);
nYear = nYear % 100;
int nMonth = cal.get(Calendar.MONTH);
nMonth++;
int nDay = cal.get(Calendar.DAY_OF_MONTH);
if (nYear < 10)
sb.append('0');
sb.append(nYear);
sb.append('-');
if (nMonth < 10)
sb.append('0');
sb.append(nMonth);
sb.append('-');
if (nDay < 10)
sb.append('0');
sb.append(nDay);
return sb.toString();
}
public final static String toYyyyMmdd(Date aDate){
if (aDate == null)
return "";
Calendar cal = new GregorianCalendar();
cal.setTime(aDate);
StringBuilder sb = new StringBuilder();
int nYear = cal.get(Calendar.YEAR);
int nMonth = cal.get(Calendar.MONTH);
nMonth++;
int nDay = cal.get(Calendar.DAY_OF_MONTH);
sb.append(nYear);
if (nMonth < 10)
sb.append('0');
sb.append(nMonth);
if (nDay < 10)
sb.append('0');
sb.append(nDay);
return sb.toString();
}
public final static String toHyphenatedYyyyMmdd(Date aDate){
if (aDate == null)
return "";
Calendar cal = new GregorianCalendar();
cal.setTime(aDate);
int nYear = cal.get(Calendar.YEAR);
int nMonth = cal.get(Calendar.MONTH);
nMonth++;
int nDay = cal.get(Calendar.DAY_OF_MONTH);
StringBuilder sb = new StringBuilder();
sb.append(nYear);
sb.append('-');
if (nMonth < 10)
sb.append('0');
sb.append(nMonth);
sb.append('-');
if (nDay < 10)
sb.append('0');
sb.append(nDay);
return sb.toString();
}
public final static String toHyphenatedYyyyMmDdHhMm(Date aDate){
if (aDate == null)
return "";
Calendar cal = new GregorianCalendar();
cal.setTime(aDate);
int nYear = cal.get(Calendar.YEAR);
int nMonth = cal.get(Calendar.MONTH);
nMonth++;
int nDay = cal.get(Calendar.DAY_OF_MONTH);
int nHour = cal.get(Calendar.HOUR_OF_DAY);
int nMinute = cal.get(Calendar.MINUTE);
StringBuilder sb = new StringBuilder();
sb.append(nYear);
sb.append('-');
if (nMonth < 10)
sb.append('0');
sb.append(nMonth);
sb.append('-');
if (nDay < 10)
sb.append('0');
sb.append(nDay);
sb.append(" ");
if (nHour < 10)
sb.append('0');
sb.append(nHour);
sb.append(":");
if (nMinute < 10)
sb.append('0');
sb.append(nMinute);
return sb.toString();
}
public final static String toHyphenatedYyyyMmDdHhMmSsFlexible(Date aDate){
if (aDate == null)
return "";
Calendar cal = new GregorianCalendar();
cal.setTime(aDate);
int nYear = cal.get(Calendar.YEAR);
int nMonth = cal.get(Calendar.MONTH);
nMonth++;
int nDay = cal.get(Calendar.DAY_OF_MONTH);
int nHour = cal.get(Calendar.HOUR_OF_DAY);
int nMinute = cal.get(Calendar.MINUTE);
int nSecond = cal.get(Calendar.SECOND);
StringBuilder sb = new StringBuilder();
sb.append(nYear);
sb.append('-');
if (nMonth < 10)
sb.append('0');
sb.append(nMonth);
sb.append('-');
if (nDay < 10)
sb.append('0');
sb.append(nDay);
if (nHour > 0 ||
nMinute > 0 ||
nSecond > 0){
sb.append(" ");
if (nHour < 10)
sb.append('0');
sb.append(nHour);
sb.append(":");
if (nMinute < 10)
sb.append('0');
sb.append(nMinute);
if (nSecond > 0){
sb.append(":");
if (nSecond < 10)
sb.append('0');
sb.append(nSecond);
}
}
return sb.toString();
}
public final static String toYyyyMmddHHmm(Date aDate){
if (aDate== null)
return "";
Calendar cal = new GregorianCalendar();
cal.setTime(aDate);
int nYear = cal.get(Calendar.YEAR);
int nMonth = cal.get(Calendar.MONTH);
nMonth++;
int nDay = cal.get(Calendar.DAY_OF_MONTH);
int nHour = cal.get(Calendar.HOUR_OF_DAY);
int nMinute = cal.get(Calendar.MINUTE);
StringBuilder sb = new StringBuilder();
sb.append(nYear);
sb.append("-");
if (nMonth < 10)
sb.append('0');
sb.append(nMonth);
sb.append("-");
if (nDay < 10)
sb.append('0');
sb.append(nDay);
sb.append(" ");
if (nHour < 10)
sb.append('0');
sb.append(nHour);
sb.append(":");
if (nMinute < 10)
sb.append('0');
sb.append(nMinute);
return sb.toString();
}
public final static String toYyyymmddHhmmss(Date aDate){
if (aDate == null)
return "";
Calendar cal = new GregorianCalendar();
cal.setTime(aDate);
int nYear = cal.get(Calendar.YEAR);
int nMonth = cal.get(Calendar.MONTH);
nMonth++;
int nDay = cal.get(Calendar.DAY_OF_MONTH);
int nHour = cal.get(Calendar.HOUR_OF_DAY);
int nMInute = cal.get(Calendar.MINUTE);
int nSeconf= cal.get(Calendar.SECOND);
StringBuilder sb = new StringBuilder();
sb.append(nYear);
sb.append('-');
if (nMonth < 10)
sb.append('0');
sb.append(nMonth);
sb.append('-');
if (nDay < 10)
sb.append('0');
sb.append(nDay);
sb.append(' ');
if (nHour < 10)
sb.append('0');
sb.append(nHour);
sb.append(':');
if (nMInute < 10)
sb.append('0');
sb.append(nMInute);
sb.append(':');
if (nSeconf < 10)
sb.append('0');
sb.append(nSeconf);
return sb.toString();
}
public final static String toHHmm(Date aDate){
if (aDate== null)
return "";
Calendar cal = new GregorianCalendar();
cal.setTime(aDate);
int nHour = cal.get(Calendar.HOUR_OF_DAY);
int nMinute = cal.get(Calendar.MINUTE);
StringBuilder sb = new StringBuilder();
if (nHour < 10)
sb.append('0');
sb.append(nHour);
sb.append(":");
if (nMinute < 10)
sb.append('0');
sb.append(nMinute);
return sb.toString();
}
public static java.sql.Timestamp toTimestamp (Date theDate){
if (theDate== null)
return null;
return new Timestamp (theDate.getTime());
}
/**
* 判断当前的时小数是否在23:00---08:00内,如果在就自动commit到供应商下单
* @return
*/
public static boolean autoCommit(){
SimpleDateFormat sdf=new SimpleDateFormat("HH");
Date d=new Date();
String str=sdf.format(d);
int num=Integer.parseInt(str) ;
return (num>=23 || num<8)?true:false;
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
package com.lvyou.util;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.log4j.Logger;
public class StringUtil {
static Logger logger = Logger.getLogger (StringUtil.class);
public final static String ENCODING = "GBK";
private static String[] strArray = new String[] { "a", "b", "c", "d", "e",
"f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r",
"s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E",
"F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
"S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4",
"5", "6", "7", "8", "9", "!", "@", "#", "$", "%", "^", "&", "(",
")" };
public static boolean isNullOrEmpty (String str){
if (str== null ||
"".equals(str))
return true;
else
return false;
}
public static String nullToEmpty(String str){
if (str== null)
return "";
return str;
}
public static String getEscaped(String str ){
try {
return URLEncoder.encode(str, ENCODING);
} catch (UnsupportedEncodingException e) {
logger.warn("", e);
}
return "";
}
/**
* 校验手机号码
* @param num
* @return
*
*/
public static boolean IsMobileCode(String code)
{
String Code = "[0-9]{3}";
if(isNumeric(code,Code))
return true;
else
return false;
}
public static boolean IsMobileNum1(String num){
String HK="[0-9]{8}";
String MainLand="[0-9]{11}";
// String USA="";
if( (isNumeric(num,HK)==true || isNumeric(num,MainLand)==true ) && num.matches("^(13|15|18)\\d{9}$"))
return true;
else
return false;
}
public static boolean IsMoblieNum(String num)
{
String Code="[0-9]{1,4}";
String HK="[0-9]{8}";
String MainLand="[0-9]{11}";
if(num.trim()!=null || num.trim()!="")
{
String[] str=num.split(" ");
if(isNumeric(str[0],Code))
{
if((isNumeric(str[1],HK)==true || isNumeric(str[1],MainLand)==true) && str[1].matches("^(13|15|18)\\d{6,9}$"))
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
public static boolean isNumeric(String str,String where )
{
Pattern pattern = Pattern.compile(where);
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() )
{
return false;
}
return true;
}
/**
* 生成唯一字符串
* @param length 需要长度
* @param symbol 是否允许出现特殊字符 -- !@ $%^&*()
* @return
*/
public static String getUniqueString(int length, boolean symbol)
throws Exception {
Random ran = new Random();
int num = ran.nextInt(61);
String returnString = "";
String str = "";
for (int i = 0; i < length;) {
if (symbol)
num = ran.nextInt(70);
else
num = ran.nextInt(61);
str = strArray[num];
if (!(returnString.indexOf(str) >= 0)) {
returnString += str;
i++;
}
}
return returnString;
}
public static void main(String[] args) {
System.out.println(IsMoblieNum("568 ga1345")?"对的":"错的");
//
// String str="16020895785";
// System.out.println(str.matches("^(13|15|18)\\d{9}$"));
}
}