package com.service_im.spoon.util;
import java.io.File;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;
public class Utils {
/**
* 日期转换格式:yyyy-MM-dd HH:mm:ss
*/
private static final SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/**
* 日期转换格式:yyyy-MM-dd
*/
private static final SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
/**
* 日期转换格式:yyyy-MM-dd HH:mm
*/
private static final SimpleDateFormat format3 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
/**
* 加减日期
* @param date
* @param days
* @return
*/
public static String getAddDate(String date, int days) {
Calendar calendar = Calendar.getInstance();
String[] calen = date.split("-");
int year = Integer.parseInt(calen[0]);
int month = Integer.parseInt(calen[1]);
int day = Integer.parseInt(calen[2]);
calendar.set(year, month - 1, day);
calendar.add(Calendar.DAY_OF_MONTH, days);
return Utils.getDate(calendar.get(Calendar.YEAR)) + "-" + Utils.getDate(calendar.get(Calendar.MONTH) + 1) + "-" + Utils.getDate(calendar.get(Calendar.DAY_OF_MONTH));
}
public static String getDate(int i) {
return i < 10 ? "0" + i : i + "";
}
//获取日期的月初
public static Date getMonthStart(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int index = calendar.get(Calendar.DAY_OF_MONTH);
calendar.add(Calendar.DATE, (1 - index));
return calendar.getTime();
}
//获取日期的月末
public static Date getMonthEnd(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, 1);
int index = calendar.get(Calendar.DAY_OF_MONTH);
calendar.add(Calendar.DATE, (-index));
return calendar.getTime();
}
//获取日期的下个月
public static Date getNext(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, 1);
return calendar.getTime();
}
/**
* 判断字符串是否为空
* @param str
* @return
*/
public static boolean isNullCharacter(String str){
boolean flg = false;
if(null != str && !"".equals(str.trim())){
flg = true;
}
return flg;
}
/**
* 生成随机数
* @param length
* @return
*/
public static String getRandomNumberMessage(int length){
Random r = new Random();
String ssource = "123456789";
char[] src = ssource.toCharArray();
char[] buf = new char[length];
int rnd;
for(int i=0;i<length;i++){
rnd = Math.abs(r.nextInt()) % src.length;
buf[i] = src[rnd];
}
return new String(buf);
}
/**
* 生成支付订单编号
* @return
*/
public static synchronized String getPayOrderNo() {
String strOrderNo = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
return "PO"+strOrderNo;
}
/**
* 传输的时间与当前时间进行比较,算出相差多少小时
* 当前时间减去传送时间
* @return
*/
public static synchronized long getDateDifferHours1(String strBegin) {
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long hour=0;
try {
Date begin = dfs.parse(strBegin);
Date end = new Date();
long diff=end.getTime()-begin.getTime();
hour=diff / (60 * 60 * 1000);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return hour;
}
/**
* 传输的时间与当前时间进行比较,算出相差多少小时
* 传送时间减去当前时间
* @return
*/
public static synchronized long getDateDifferHours2(String strBegin) {
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long hour=0;
try {
Date begin = dfs.parse(strBegin);
Date end = new Date();
long diff=begin.getTime()-end.getTime();
hour=diff / (60 * 60 * 1000);
} catch (ParseException e) {
e.printStackTrace();
}
return hour;
}
/**
* 传输的时间与当前时间进行比较,算出相差多少分钟
* 传送时间减去当前时间
* @return
*/
public static synchronized long getDateDifferMinute2(String strBegin) {
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long min = 0;
try {
Date begin = dfs.parse(strBegin);
Date end = new Date();
long time1 = begin.getTime();
long time2 = end.getTime();
long diff = time1 - time2;
min = diff / (60 * 1000);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return min;
}
/**
* 传输的时间与当前时间进行比较,算出相差多少分钟
* 当前时间减去传送时间
* @return
*/
public static synchronized long getDateDifferMinute1(String strBegin) {
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long min = 0;
try {
Date begin = dfs.parse(strBegin);
Date end = new Date();
long time1 = begin.getTime();
long time2 = end.getTime();
long diff = time2 - time1;
min = diff / (60 * 1000);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return min;
}
/**
* 字符串是否为数字
* @param str
* @return
*/
public static boolean isNumeric(String str) {
for (int i = 0; i < str.length(); i++) {
if (!Character.isDigit(str.charAt(i))) {
return false;
}
}
return true;
}
/**
* 将null,"null"这种字符串进行转义
* @param str
* @return
*/
public static String replaceStringNULL(String str){
if(str==null){
return "";
}else if(("\"null\"".equals(str.trim()))||("\"\"".equals(str.trim()))){
return str.replace("\"", "");
}
return str;
}
/**
* 年增加方法
* @param s
* @param n
* @return
*/
public static String addYear(String s, int n) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar cd = Calendar.getInstance();
cd.setTime(sdf.parse(s));
//cd.add(Calendar.DATE, n);// 增加一天
// cd.add(Calendar.MONTH, n);//增加一个月
cd.add(Calendar.YEAR, n);
return sdf.format(cd.getTime());
} catch (Exception e) {
return null;
}
}
/**
* 日期上面进行小时增加
* @param date
* @param days
* @return
*/
public static String getDateAddHours(String strDate, int days) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date=null;
try {
date = sdf.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar ca=Calendar.getInstance();
ca.setTime(date);
ca.add(Calendar.HOUR_OF_DAY, days);
return sdf.format(ca.getTime());
}
/**
* 将字符串中的特殊字符转进行转义
* @param s
* @return
*/
public static String stringToJson(String s){
StringBuffer sb = new StringBuffer();
for(int i=0; i<s.length();i++){
char c = s.charAt(i);
switch(c){
//case '\"':
//sb.append("\\\"");
//break;
//case '\\': //如果不处理单引号,可以释放此段代码,若结合下面的方法处理单引号就必须注释掉该段代码
//sb.append("\\\\");
// break;
case '/':
sb.append("\\/");
break;
case '\b': //退格
sb.append("\\b");
break;
case '\f': //走纸换页
sb.append("\\f");
break;
case '\n':
sb.append("\\n"); //换行
break;
case '\r': //回车
sb.append("\\r");
break;
case '\t': //横向跳格
sb.append("\\t");
break;
default:
sb.append(c);
}
}
return sb.toString();
}
/**
* 根据月份获得天数
* @param month 月份
* @param year 年份
* @return
*/
public static int getDayNumberByMonth(int month,int year){
int day=0;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day=31;
break;
case 2:
boolean b=isLeapYear(year);
if(b){
day=29;
}else{
day=28;
}
break;
case 4:
case 6:
case 9:
case 11:
day=30;
break;
}
return day;
}
/**
* 判断是否闰年还平年
* 一个年份数可以被100整除的话,如果同时也可以被4整除才是闰年,否则的是平年。
*一个年份数不能被100整除的话,如果ta此时可以被4整除也是闰年,否则的是平年。
* @param year 年份
* @return
*/
public static boolean isLeapYear(int year){
if((year%100) ==0){
if((year%400)==0){
return true;
}
}else{
if((year%4)==0){
return true;
}
}
return false;
}
/**
* 字符串转换成日期
* @param str
* @return date
*/
public static Date StrToDate(String str) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = format.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
/**
* 将价格转换为小数位,保留2位
* @param orderMoney
* @return
*/
public static String getTrunDecimals(String orderMoney){
DecimalFormat df = new DecimalFormat("0.00"); // 保留2位小数
double price = Double.parseDouble(orderMoney);
// String strPrice = df.format(price);
return df.format(price);
}
/**
* 将时间转换成字符串格式
* @param date Date类型
* @param format 字符串,须转换的格式,
* 参数可为:
* format1:表示yyyy-MM-dd HH:mm:ss
* format2:yyyy-MM-dd
* @return String
*/
public static String dateTostr(Date date,String format) {
String str = "";
try {
if("format1".equals(format)){
format1.setLenient(false);
str = format1.format(date);
}else if("format2".equals(format)){
format2.setLenient(false);
str = format2.format(date);
}else if("format3".equals(format)){
format3.setLenient(false);
str = format3.format(date);
}
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
/**
* 指定日期上加减天数,得到最终日期
*
* @param num
* 增加的天数(正数为加,负数为减)
* @param newDate
* 改变的日期
* @return String 日期格式:yyyy-MM-dd HH:mm:ss
* @throws ParseException
*/
public static String dateAddDayAndSubtract(int num, String newDate)
throws ParseException {
Date currdate = format1.parse(newDate);
Calendar ca = Calendar.getInstance();
ca.setTime(currdate);
ca.add(Calendar.DATE, num);// num为增加的天数,可以改变的
currdate = ca.getTime();
String enddate = format1.format(currdate);
return enddate;
}
/**
* 指定日期上加减月份,得到最终日期
*
* @param num
* 增加的月份数(正数为加,负数为减)
* @param newDate
* 改变的日期
* @return String 日期格式:yyyy-MM-dd HH:mm:ss
* @throws ParseException
*/
public static String dateAddMonthAndSubtract(int num, String newDate){
String enddate ="";
try {
Date currdate = format1.parse(newDate);
Calendar ca = Calendar.getInstance();
ca.setTime(currdate);
ca.add(Calendar.MONTH, num);// num为增加的月份,可以改变的
currdate = ca.getTime();
enddate = format1.format(currdate);
}catch(Exception ex){
ex.printStackTrace();
}
return enddate;
}
/**
* 将字符串转换成时间
*
* @param dateString
* @param format 字符串,须转换的格式,
* 参数可为:
* format1:表示yyyy-MM-dd HH:mm:ss
* format2:yyyy-MM-dd
* @return
*/
public static Date strParseDate(String dateString, String format) {
Date currdate = null;
try {
if (StringUtils.isNotBlank(dateString)) {
if("format1".equals(format)){
format1.setLenient(false);
currdate = format1.parse(dateString);
}else if("format2".equals(format)){
format2.setLenient(false);
currdate = format2.parse(dateString);
}
Calendar ca = Calendar.getInstance();
ca.setTime(currdate);
currdate = ca.getTime();
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return currdate;
}
/**
* 比较日期的大小
* @param DATE1 如format格式参数是 yyyy-MM-dd HH:mm:ss,date1格式须同formate格式参数
* @param DATE2 如format格式参数是 yyyy-MM-dd HH:mm:ss,date2格式须同formate格式参数
* @param format 字符串,须转换的格式,
* 参数可为:
* format1:表示yyyy-MM-dd HH:mm:ss
* format2:yyyy-MM-dd
* @return int
*/
public static int compareDate(String DATE1, String DATE2,String format) {
try {
Date dt1 =null;
Date dt2 =null;
if("format1".equals(format)){
dt1 = format1.parse(DATE1);
dt2 = format1.parse(DATE2);
}else if("format2".equals(format)){
dt1 = format2.parse(DATE1);
dt2 = format2.parse(DATE2);
}
if (dt1.getTime() > dt2.getTime()) {
// System.out.println("dt1 在dt2前");
return 1;
} else if (dt1.getTime() < dt2.getTime()) {
// System.out.println("dt1在dt2后");
return -1;
} else {
return 0;
}
} catch (Exception exception) {
exception.printStackTrace();
}
return 0;
}
}
import java.io.File;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;
public class Utils {
/**
* 日期转换格式:yyyy-MM-dd HH:mm:ss
*/
private static final SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/**
* 日期转换格式:yyyy-MM-dd
*/
private static final SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd");
/**
* 日期转换格式:yyyy-MM-dd HH:mm
*/
private static final SimpleDateFormat format3 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
/**
* 加减日期
* @param date
* @param days
* @return
*/
public static String getAddDate(String date, int days) {
Calendar calendar = Calendar.getInstance();
String[] calen = date.split("-");
int year = Integer.parseInt(calen[0]);
int month = Integer.parseInt(calen[1]);
int day = Integer.parseInt(calen[2]);
calendar.set(year, month - 1, day);
calendar.add(Calendar.DAY_OF_MONTH, days);
return Utils.getDate(calendar.get(Calendar.YEAR)) + "-" + Utils.getDate(calendar.get(Calendar.MONTH) + 1) + "-" + Utils.getDate(calendar.get(Calendar.DAY_OF_MONTH));
}
public static String getDate(int i) {
return i < 10 ? "0" + i : i + "";
}
//获取日期的月初
public static Date getMonthStart(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int index = calendar.get(Calendar.DAY_OF_MONTH);
calendar.add(Calendar.DATE, (1 - index));
return calendar.getTime();
}
//获取日期的月末
public static Date getMonthEnd(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, 1);
int index = calendar.get(Calendar.DAY_OF_MONTH);
calendar.add(Calendar.DATE, (-index));
return calendar.getTime();
}
//获取日期的下个月
public static Date getNext(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, 1);
return calendar.getTime();
}
/**
* 判断字符串是否为空
* @param str
* @return
*/
public static boolean isNullCharacter(String str){
boolean flg = false;
if(null != str && !"".equals(str.trim())){
flg = true;
}
return flg;
}
/**
* 生成随机数
* @param length
* @return
*/
public static String getRandomNumberMessage(int length){
Random r = new Random();
String ssource = "123456789";
char[] src = ssource.toCharArray();
char[] buf = new char[length];
int rnd;
for(int i=0;i<length;i++){
rnd = Math.abs(r.nextInt()) % src.length;
buf[i] = src[rnd];
}
return new String(buf);
}
/**
* 生成支付订单编号
* @return
*/
public static synchronized String getPayOrderNo() {
String strOrderNo = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
return "PO"+strOrderNo;
}
/**
* 传输的时间与当前时间进行比较,算出相差多少小时
* 当前时间减去传送时间
* @return
*/
public static synchronized long getDateDifferHours1(String strBegin) {
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long hour=0;
try {
Date begin = dfs.parse(strBegin);
Date end = new Date();
long diff=end.getTime()-begin.getTime();
hour=diff / (60 * 60 * 1000);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return hour;
}
/**
* 传输的时间与当前时间进行比较,算出相差多少小时
* 传送时间减去当前时间
* @return
*/
public static synchronized long getDateDifferHours2(String strBegin) {
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long hour=0;
try {
Date begin = dfs.parse(strBegin);
Date end = new Date();
long diff=begin.getTime()-end.getTime();
hour=diff / (60 * 60 * 1000);
} catch (ParseException e) {
e.printStackTrace();
}
return hour;
}
/**
* 传输的时间与当前时间进行比较,算出相差多少分钟
* 传送时间减去当前时间
* @return
*/
public static synchronized long getDateDifferMinute2(String strBegin) {
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long min = 0;
try {
Date begin = dfs.parse(strBegin);
Date end = new Date();
long time1 = begin.getTime();
long time2 = end.getTime();
long diff = time1 - time2;
min = diff / (60 * 1000);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return min;
}
/**
* 传输的时间与当前时间进行比较,算出相差多少分钟
* 当前时间减去传送时间
* @return
*/
public static synchronized long getDateDifferMinute1(String strBegin) {
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long min = 0;
try {
Date begin = dfs.parse(strBegin);
Date end = new Date();
long time1 = begin.getTime();
long time2 = end.getTime();
long diff = time2 - time1;
min = diff / (60 * 1000);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return min;
}
/**
* 字符串是否为数字
* @param str
* @return
*/
public static boolean isNumeric(String str) {
for (int i = 0; i < str.length(); i++) {
if (!Character.isDigit(str.charAt(i))) {
return false;
}
}
return true;
}
/**
* 将null,"null"这种字符串进行转义
* @param str
* @return
*/
public static String replaceStringNULL(String str){
if(str==null){
return "";
}else if(("\"null\"".equals(str.trim()))||("\"\"".equals(str.trim()))){
return str.replace("\"", "");
}
return str;
}
/**
* 年增加方法
* @param s
* @param n
* @return
*/
public static String addYear(String s, int n) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar cd = Calendar.getInstance();
cd.setTime(sdf.parse(s));
//cd.add(Calendar.DATE, n);// 增加一天
// cd.add(Calendar.MONTH, n);//增加一个月
cd.add(Calendar.YEAR, n);
return sdf.format(cd.getTime());
} catch (Exception e) {
return null;
}
}
/**
* 日期上面进行小时增加
* @param date
* @param days
* @return
*/
public static String getDateAddHours(String strDate, int days) {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date=null;
try {
date = sdf.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar ca=Calendar.getInstance();
ca.setTime(date);
ca.add(Calendar.HOUR_OF_DAY, days);
return sdf.format(ca.getTime());
}
/**
* 将字符串中的特殊字符转进行转义
* @param s
* @return
*/
public static String stringToJson(String s){
StringBuffer sb = new StringBuffer();
for(int i=0; i<s.length();i++){
char c = s.charAt(i);
switch(c){
//case '\"':
//sb.append("\\\"");
//break;
//case '\\': //如果不处理单引号,可以释放此段代码,若结合下面的方法处理单引号就必须注释掉该段代码
//sb.append("\\\\");
// break;
case '/':
sb.append("\\/");
break;
case '\b': //退格
sb.append("\\b");
break;
case '\f': //走纸换页
sb.append("\\f");
break;
case '\n':
sb.append("\\n"); //换行
break;
case '\r': //回车
sb.append("\\r");
break;
case '\t': //横向跳格
sb.append("\\t");
break;
default:
sb.append(c);
}
}
return sb.toString();
}
/**
* 根据月份获得天数
* @param month 月份
* @param year 年份
* @return
*/
public static int getDayNumberByMonth(int month,int year){
int day=0;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day=31;
break;
case 2:
boolean b=isLeapYear(year);
if(b){
day=29;
}else{
day=28;
}
break;
case 4:
case 6:
case 9:
case 11:
day=30;
break;
}
return day;
}
/**
* 判断是否闰年还平年
* 一个年份数可以被100整除的话,如果同时也可以被4整除才是闰年,否则的是平年。
*一个年份数不能被100整除的话,如果ta此时可以被4整除也是闰年,否则的是平年。
* @param year 年份
* @return
*/
public static boolean isLeapYear(int year){
if((year%100) ==0){
if((year%400)==0){
return true;
}
}else{
if((year%4)==0){
return true;
}
}
return false;
}
/**
* 字符串转换成日期
* @param str
* @return date
*/
public static Date StrToDate(String str) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = format.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
/**
* 将价格转换为小数位,保留2位
* @param orderMoney
* @return
*/
public static String getTrunDecimals(String orderMoney){
DecimalFormat df = new DecimalFormat("0.00"); // 保留2位小数
double price = Double.parseDouble(orderMoney);
// String strPrice = df.format(price);
return df.format(price);
}
/**
* 将时间转换成字符串格式
* @param date Date类型
* @param format 字符串,须转换的格式,
* 参数可为:
* format1:表示yyyy-MM-dd HH:mm:ss
* format2:yyyy-MM-dd
* @return String
*/
public static String dateTostr(Date date,String format) {
String str = "";
try {
if("format1".equals(format)){
format1.setLenient(false);
str = format1.format(date);
}else if("format2".equals(format)){
format2.setLenient(false);
str = format2.format(date);
}else if("format3".equals(format)){
format3.setLenient(false);
str = format3.format(date);
}
} catch (Exception e) {
e.printStackTrace();
}
return str;
}
/**
* 指定日期上加减天数,得到最终日期
*
* @param num
* 增加的天数(正数为加,负数为减)
* @param newDate
* 改变的日期
* @return String 日期格式:yyyy-MM-dd HH:mm:ss
* @throws ParseException
*/
public static String dateAddDayAndSubtract(int num, String newDate)
throws ParseException {
Date currdate = format1.parse(newDate);
Calendar ca = Calendar.getInstance();
ca.setTime(currdate);
ca.add(Calendar.DATE, num);// num为增加的天数,可以改变的
currdate = ca.getTime();
String enddate = format1.format(currdate);
return enddate;
}
/**
* 指定日期上加减月份,得到最终日期
*
* @param num
* 增加的月份数(正数为加,负数为减)
* @param newDate
* 改变的日期
* @return String 日期格式:yyyy-MM-dd HH:mm:ss
* @throws ParseException
*/
public static String dateAddMonthAndSubtract(int num, String newDate){
String enddate ="";
try {
Date currdate = format1.parse(newDate);
Calendar ca = Calendar.getInstance();
ca.setTime(currdate);
ca.add(Calendar.MONTH, num);// num为增加的月份,可以改变的
currdate = ca.getTime();
enddate = format1.format(currdate);
}catch(Exception ex){
ex.printStackTrace();
}
return enddate;
}
/**
* 将字符串转换成时间
*
* @param dateString
* @param format 字符串,须转换的格式,
* 参数可为:
* format1:表示yyyy-MM-dd HH:mm:ss
* format2:yyyy-MM-dd
* @return
*/
public static Date strParseDate(String dateString, String format) {
Date currdate = null;
try {
if (StringUtils.isNotBlank(dateString)) {
if("format1".equals(format)){
format1.setLenient(false);
currdate = format1.parse(dateString);
}else if("format2".equals(format)){
format2.setLenient(false);
currdate = format2.parse(dateString);
}
Calendar ca = Calendar.getInstance();
ca.setTime(currdate);
currdate = ca.getTime();
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return currdate;
}
/**
* 比较日期的大小
* @param DATE1 如format格式参数是 yyyy-MM-dd HH:mm:ss,date1格式须同formate格式参数
* @param DATE2 如format格式参数是 yyyy-MM-dd HH:mm:ss,date2格式须同formate格式参数
* @param format 字符串,须转换的格式,
* 参数可为:
* format1:表示yyyy-MM-dd HH:mm:ss
* format2:yyyy-MM-dd
* @return int
*/
public static int compareDate(String DATE1, String DATE2,String format) {
try {
Date dt1 =null;
Date dt2 =null;
if("format1".equals(format)){
dt1 = format1.parse(DATE1);
dt2 = format1.parse(DATE2);
}else if("format2".equals(format)){
dt1 = format2.parse(DATE1);
dt2 = format2.parse(DATE2);
}
if (dt1.getTime() > dt2.getTime()) {
// System.out.println("dt1 在dt2前");
return 1;
} else if (dt1.getTime() < dt2.getTime()) {
// System.out.println("dt1在dt2后");
return -1;
} else {
return 0;
}
} catch (Exception exception) {
exception.printStackTrace();
}
return 0;
}
}
评论
1 楼
hubertstar
2016-08-25
我晕,要是用了这几个方法,哭都找不到地方哭。先说说比较严重的几个问题吧。
1. 字符串在做判断的时候,尽量用数组的操作来判断。str.trim()整个要生成一个新对象,然后再去判断“”,这个逻辑说实话没有谁在实际中会这么干。
2. static的方法,没用到任何共享变量的时候,为什么要做同步?
3. 字符串转成日期的方法,除非全局约定日期格式,否则最好将格式作为方法参数,那么这个工具方法中相当于异常保护,要么返回日期,要么空值。如果格式固定,为什么不用全局共享的DateFormat常量?
4. 再一次强调,设计金额运算的时候不要用double,脑残了才会这么干。还有用format进行解析,没关心过效率问题吗?
5. 支付订单编号,唉,你再仔细想想吧。
1. 字符串在做判断的时候,尽量用数组的操作来判断。str.trim()整个要生成一个新对象,然后再去判断“”,这个逻辑说实话没有谁在实际中会这么干。
2. static的方法,没用到任何共享变量的时候,为什么要做同步?
3. 字符串转成日期的方法,除非全局约定日期格式,否则最好将格式作为方法参数,那么这个工具方法中相当于异常保护,要么返回日期,要么空值。如果格式固定,为什么不用全局共享的DateFormat常量?
4. 再一次强调,设计金额运算的时候不要用double,脑残了才会这么干。还有用format进行解析,没关心过效率问题吗?
5. 支付订单编号,唉,你再仔细想想吧。
发表评论
-
Http post请求
2017-08-23 10:14 838package com.java.util; import ... -
Properties 文件读取
2017-08-23 09:52 497package com.java.util; import ... -
Build模式练习
2017-08-02 15:06 471/** * Build模式练习 * @author Adm ... -
JSON转换工具类
2016-08-29 19:56 557import java.beans.Introspection ... -
java基础知识
2016-08-25 16:26 437一、Redis和Memcache的区别 ... -
Java获取当前时间并转化成字符串
2012-11-15 18:08 3308package com.happy.sqlite.test; ... -
对于特殊字符保存到数据库后再读出原样输出到页面
2012-08-29 18:25 976/** *如<a href="http: ... -
struts2-excel文件的读取
2012-07-03 19:34 823页面: <input type="file&q ... -
struts2文档上传与下载
2012-07-03 19:21 656页面(freemark页面): <input type ... -
heibernate多对多表的处理
2012-06-21 10:56 1101老师Teacher 与 课程Course 是一个多对多的关系, ... -
树列表遍历
2012-06-18 21:32 655//方法如下: public static void main ... -
列表项左右移动
2012-06-02 22:58 750<!doctype html public " ... -
JAVA修饰符类型解释
2012-03-12 19:39 792public的类、类属变量及方法,包内及包外的任何类均可以访问 ... -
简单常用方法接口_2
2012-02-16 16:06 648第三步,定义具体dao接口 package dao; imp ... -
log4j的应用实例
2012-02-09 17:00 732第一步,要项目的src下面建一个log4j.propertie ... -
简单常用方法接口_1
2011-02-08 02:38 654第一步,写泛型 package d ...
相关推荐
这里提到的"这些年整理的一些常用Utils工具类"是一份集合了多种功能的Java工具库,旨在为开发人员提供便利。以下将详细介绍其中可能包含的知识点: 1. **Utils工具类的设计理念**: - 工具类通常设计为静态方法...
这些工具类都是 Java 开发中常用的实用工具,可以帮助开发者快速高效地完成各种任务。 一、Spring 工具类 1. org.springframework.util.StringUtils 工具类用于判断字符串非空,常用的方法有 isEmpty()、hasText()...
工作中实用的Java工具类整理 config 多数据源的配置及动态切换数据库的切面配置(还未完善好,配置文件暂上传) database JedisUtil(redis连接操作实现) encrypt RsaUtils(rsa加密Java实现) http http.async ...
在深入探讨DWR中Util.js的常用方法之前,我们先简要回顾一下DWR(Direct Web Remoting)是什么。DWR是一种开源框架,允许在Java服务器端与客户端之间进行Ajax调用,使得JavaScript可以直接调用服务器端的Java方法,...
Utils-Everywhere 是一个开源项目,它集合了各种常用且功能广泛的工具类,旨在为开发者提供便利,提高开发效率。这个项目的重点在于它的通用性,覆盖了许多常见的编程任务,无论是在Android、Java还是其他Java生态...
在11年的编程生涯中,积累了一系列常用的Java工具类,这些类包含了上百种方法,几乎覆盖了大部分常见的编程场景。下面将详细阐述一些重要的Java工具类及其常用方法。 1. **Apache Commons Lang**: Apache Commons ...
AndroidUtils 使用方法 dependencies { implementation 'com.github.luffyshu:AndroidUtils:v1.0.0' }
整理并收集各种常用的覆盖面广的工具类。 1. 简介 是日常项目和工作中将常 用的代码进行封装和整理形成的工具类,一部分是结合自己再实际开发中整理而得,一部分则是直接参考或使用其他优 秀的开源工具类(文末和...
在Android应用开发中,工具类(Utils类)是开发者经常使用的辅助组件,它们通常包含一些通用的方法,可以方便地在各个模块之间复用,提高代码的可读性和维护性。以下是一些Android开发中常见的工具类及其关键知识点...
2. **日期与时间处理**:Java中的日期和时间处理往往比较复杂,My-utils可能封装了一些易于使用的日期时间工具类,简化日期时间的操作。 3. **网络请求**:可能提供了HTTP请求的便捷接口,包括GET、POST等,对于...
- 掌握常用的类库,如算法工具集、CommonsUtils,以及自定义类如MyArrayList的实现。 - 学习异常处理机制,理解如何捕获和处理程序运行时可能遇到的问题。 2. **面向对象编程**: - 理解类的抽象,如何创建和...
Fastandrutils 是一套整理修改整合的android开发常用的工具类。 这样可以减少复制粘贴代码,从而减少重复代码,也不用为了一个常用的功能去谷歌百度,让代码更简洁,让开发更高效。 同时希望您的添加完善,让...
Android工具库 其中很大一部分是Android应用程序开发过程中常用的工具。 工具来自网络并自行编写。 (不断收集整理) (中文文档)[ ]快速使用:在项目目录中的build.gradle添加以下代码: allprojects { ...
因此想要好好整理一番,方便回顾与学习,所以这是一个总结向的代码仓库。 本人会把个人学习的知识、实际项目遇到的难题、有趣的功能实现例子存于此,包括但不限于以下几种: 原生 API 工具操作类 设计模式 数据结构 ...
项目中放一些常用的工具类在这里,同时将自己这半年学到的东西进行整理。 “温故而知新,可以为师矣”,的确,需要正常性地总结回顾,因为最近也发现,之前写的项目中用的一些,现在在新项目中使用时,有些记不太清...
#这个是我自己收集整理的一些常用的工具类##有好的工具类,欢迎提交PR 作者微博: ##增加常用库的README_LIB 内容说明 工具 描述 动画工具类 APP相关信息工具类 目录资源获取 加密 获取Bitmap和对Bitmap的操作 ...
工具类来源整理自网络和自己编写。 所有的工具类简介(a-z): 类 介绍 动画工具类 APP相关信息工具类 读取资产目录中数据库工具类 位图工具类主要包括获取位图和对位图的操作 加密与解密的工具类 常用颜色色值工具...
这一部分是整个系列的核心内容之一,因为它涵盖了实际操作中常用的功能和技巧。尽管该部分内容未完全给出,但可以推测它可能涉及以下主题: - 使用Selenium Library定位菜单项和工具栏按钮。 - 模拟点击和其他用户...
将这些常用或实用的代码片段整理在一起可以大大提高开发效率。以下是一些Android开发中的关键知识点,它们涵盖了获取系统信息、处理ListView点击事件以及获取应用相关数据等方面。 1. **获取系统版本号**: 通过`...
`type`:虽然可以指定JavaBean的类型,但在实际使用中并不常用。 - C. `name`:与`id`类似,但更推荐使用`id`。 - E. `scope`:用于设置JavaBean的作用域,默认为`page`。 - F. `create`:此属性已经不再使用。 ...