時間與時間戳的轉化/時間與時間字串的轉化/字串與時間戳的轉化
阿新 • • 發佈:2019-01-28
package cn.meiriting.common.utils;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.apache.commons.lang3.StringUtils;
/**
* @author DingJiaCheng
* */
public class DateFormatUtil {
/**
* 時間戳轉日期
* @param ms
* @return
*/
public static Date transForDate(Integer ms){
if(ms==null){
ms=0;
}
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date temp=null;
if(ms!=null){
try {
String str=sdf.format(msl);
temp=sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
}
return temp;
}
/**
* 獲取晚上9點半的時間戳
*
* @return
*/
public static int getTimes(int day, int hour, int minute) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, day);
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.MILLISECOND, 0);
return (int) (cal.getTimeInMillis() / 1000);
}
/**
* 獲取當前時間往上的整點時間
*
* @return
*/
public static int getIntegralTime() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR_OF_DAY, 1);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
return (int) (cal.getTimeInMillis() / 1000);
}
public static int getIntegralTimeEnd() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 24);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
return (int) (cal.getTimeInMillis() / 1000);
}
/**
* 時間戳轉日期
* @param ms
* @return
*/
public static Date transForDate3(Integer ms){
if(ms==null){
ms=0;
}
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date temp=null;
if(ms!=null){
try {
String str=sdf.format(msl);
temp=sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
}
return temp;
}
/**
* 時間戳轉日期
* @param ms
* @return
*/
public static Date transForDate(Long ms){
if(ms==null){
ms=(long)0;
}
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date temp=null;
if(ms!=null){
try {
String str=sdf.format(msl);
temp=sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
}
return temp;
}
public static String transForDate1(Integer ms){
String str = "";
if(ms!=null){
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if(ms!=null){
try {
str=sdf.format(msl);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return str;
}
public static String transForDate2(Integer ms){
String str = "";
if(ms!=null){
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
if(ms!=null){
try {
str=sdf.format(msl);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return str;
}
public static String transForDate4(Integer ms){
String str = "";
if(ms!=null){
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy.MM.dd");
if(ms!=null){
try {
str=sdf.format(msl);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return str;
}
public static String transForDate5(Integer ms){
String str = "";
if(ms!=null){
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
if(ms!=null){
try {
str=sdf.format(msl);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return str;
}
public static String transForDateInChinese(Integer ms){
String str = "";
if(ms!=null){
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
if(ms!=null){
try {
str=sdf.format(msl);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return str;
}
/**
* 日期轉時間戳
* @param date
* @return
*/
public static Integer transForMilliSecond(Date date){
if(date==null) return null;
return (int)(date.getTime()/1000);
}
/**
* 獲取當前時間戳
* @return
*/
public static Integer currentTimeStamp(){
return (int)(System.currentTimeMillis()/1000);
}
/**
* 日期字串轉時間戳
* @param dateStr
* @return
*/
public static Integer transForMilliSecond(String dateStr){
Date date = DateFormatUtil.formatDate(dateStr);
return date == null ? null : DateFormatUtil.transForMilliSecond(date);
}
/**
* 日期字串轉時間戳
* @param dateStr
* @return
*/
public static Integer transForMilliSecond(String dateStr,String format){
Date date = DateFormatUtil.formatDate(dateStr,format);
return date == null ? null : DateFormatUtil.transForMilliSecond(date);
}
/**
* 日期字串轉時間戳
* @param dateStr
* @param 格式 如"yyyy-mm-dd"
* @return
*/
public static Integer transForMilliSecondByTim(String dateStr,String tim){
SimpleDateFormat sdf=new SimpleDateFormat(tim);
Date date =null;
try {
date = sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return date == null ? null : DateFormatUtil.transForMilliSecond(date);
}
/**
* 字串轉日期,格式為:"yyyy-MM-dd HH:mm:ss"
* @param dateStr
* @return
*/
public static Date formatDate(String dateStr){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date result=null;
try {
result = sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return result;
}
/**
* 字串轉日期,格式為:"yyyy-MM-dd HH:mm:ss"
* @param dateStr
* @return
*/
public static Date formatDate(String dateStr,String format){
SimpleDateFormat sdf=new SimpleDateFormat(format);
Date result=null;
try {
result = sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return result;
}
/**
* 日期轉字串
* @param date
* @return
*/
public static String formatDate(Date date){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String result=null;
result = sdf.format(date);
return result;
}
/**
* 日期轉字串
* @param date
* @return
*/
public static String formatDate(Date date,String format){
SimpleDateFormat sdf=new SimpleDateFormat(format);
String result=null;
result = sdf.format(date);
return result;
}
/**
* 時間戳格式化輸出(httl模版用)
*
* @param ms 時間戳
* @param format 格式化
* @return
*/
public static String transForDate(Integer ms, String format){
String str = "";
if(ms!=null){
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat(format);
if(!ms.equals(0)){
try {
str=sdf.format(msl);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return str;
}
/**
* 取BigDecimal型別數的整數或小數部分(httl模版用)
*
* @param b 值
* @param mode 模式 0取整 1去小數部分
* @return
*/
public static String splitBigDecimal(BigDecimal b, int mode) {
DecimalFormat df = new DecimalFormat("0.00");
String s = df.format(b);
if(mode==0){
return s.split("\\.")[0];
}else {
return "."+s.split("\\.")[1];
}
}
/**
* 計算兩個日期之間差的天數(httl模版用)
*
* @param ts1 時間戳1
* @param ts2 時間戳2
* @return
*/
public static int caculate2Days(Integer ts1, Integer ts2) {
Date firstDate = DateFormatUtil.transForDate(ts1);
Date secondDate = DateFormatUtil.transForDate(ts2);
Calendar calendar = Calendar.getInstance();
calendar.setTime(firstDate);
int dayNum1 = calendar.get(Calendar.DAY_OF_YEAR);
calendar.setTime(secondDate);
int dayNum2 = calendar.get(Calendar.DAY_OF_YEAR);
return Math.abs(dayNum1 - dayNum2);
}
/**
* 給手機加密中間四位加星號
*
* @param mobile
* @return
*/
public String mobileSerect(String mobile){
if(!StringUtils.isBlank(mobile)){
int between = mobile.length()/2;
mobile = mobile.substring(0, between-2)+"****"+mobile.substring(between+2, mobile.length());
}
return mobile;
}
/**
* 給郵箱加密加星號
*
* @param email
* @return
*/
public String emailSerect(String email) {
if(!StringUtils.isBlank(email)){
int length = email.lastIndexOf("@");
email = email.substring(0, 2)+"****"+email.substring(length-2, email.length());
}
return email;
}
/**
* BigDecimal型別資料相加
*
* @param BigDecimal source
* @param BigDecimal target
* @return
*/
public BigDecimal sumBigDicimal(BigDecimal source, BigDecimal target) {
source = source.add(target);
return source;
}
/**
* BigDecimal型別資料相加
*
* @param BigDecimal source
* @param BigDecimal target
* @return
*/
public BigDecimal sumBigDicimalAndDouble(BigDecimal source, Double target) {
BigDecimal new_target = new BigDecimal(target);
source = source.add(new_target);
return source;
}
/**
* BigDecimal型別資料相減
*
* @param BigDecimal source
* @param BigDecimal target
* @return
*/
public BigDecimal subBigDicimal(BigDecimal source, BigDecimal target) {
source = source.subtract(target);
return source;
}
/**
* 獲取傳入時間和當前時間的時間差
* @return
*/
public static Long getTimediff(int timeStamp){
Date d1 = DateFormatUtil.transForDate(timeStamp);
Date today = new Date();
if(d1.getTime()<today.getTime()){
return null;
}
return (d1.getTime()-today.getTime())/1000;
}
/**
* 獲取某周的第一天日期
* @param week 0 當週 1 上一週 -1 下一週
* @return
*/
public static String weekFirstDay(int week){
Calendar c1 = Calendar.getInstance();
int dow = c1.get(Calendar.DAY_OF_WEEK);
c1.add(Calendar.DATE, -dow-7*(week-1)-5 );
String d1 = new SimpleDateFormat("yyyy-MM-dd").format(c1.getTime());
return d1+" 00:00:00";
}
/**
* 當前時間加一年
*/
public static String addYear(int startTime){
Date firstDate = DateFormatUtil.transForDate(startTime);
Calendar calendar = Calendar.getInstance();
calendar.setTime(firstDate);
calendar.add(Calendar.YEAR,1);
String d1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime());
return d1;
}
/**
* 獲取某周的最後一天日期
* @param week
* @return
*/
public static String weekLastDay(int week){
Calendar c1 = Calendar.getInstance();
int dow = c1.get(Calendar.DAY_OF_WEEK);
c1.add(Calendar.DATE, -dow-7*(week-1)+1);
String d1 = new SimpleDateFormat("yyyy-MM-dd").format(c1.getTime());
return d1+" 23:59:59";
}
/**
* 和當前時間比對
* @return
*/
public static boolean greaterThanNow(int timeStamp){
Date d1 = DateFormatUtil.transForDate(timeStamp);
Date today = new Date();
if(d1.getTime()>=today.getTime()){
return true;
}
return false;
}
/**
* HH:mm:ss格式時間轉換為1970-01-01日的時間戳(也就是隻有時間沒有日期的情況要求使用時間戳表示時間)
* @author DingJiaCheng
* */
public static int transFromTime(String time){
return transForMilliSecond("1970-01-01 "+time,"yyyy-mm-dd HH:mm:ss");
}
/**
* 時間戳轉換為HH:mm:ss格式時間(日期去除)
* @author DingJiaCheng
* */
public static String transToTime(int time){
String s = new String(transForDate1(time));
String ss[] = s.split(" ");
return ss[1];
}
public static int transToChuo(String dateString){
SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd");
int res = 0;
try {
Date date=simpleDateFormat .parse(dateString);
res = (int) date.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return res;
}
// 獲取當前月的第一天
public static Integer getTheFirstDayOfTheCurrentMonth() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();//獲取當前日期
calendar .set(Calendar.DAY_OF_MONTH,1);//設定為1號,當前日期既為本月第一天
calendar .set(Calendar.HOUR_OF_DAY,0); // 將小時置0
calendar.set(Calendar.MINUTE,0);// 將分鐘置0
calendar.set(Calendar.SECOND,0);// 將秒置0
calendar.set(Calendar.MILLISECOND,0);
String firstDay = format.format(calendar .getTime()); // 得到時間字元
System.out.println(firstDay);
Integer newFirstDay = DateFormatUtil.transForMilliSecond(firstDay);// 將時間字元轉化成時間戳
return newFirstDay;
}
// 獲取當前月的最後一天
public static Integer getTheLastDayOfTheCurrentMonth() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();//獲取當前日期
calendar.add(Calendar.MONTH, 1);// 當前月份加1,得到下一月份
calendar .set(Calendar.DAY_OF_MONTH,1);//設定為1號,當前日期既為本月第一天
calendar .set(Calendar.HOUR_OF_DAY,0); // 將小時置0
calendar.set(Calendar.MINUTE,0);// 將分鐘置0
calendar.set(Calendar.SECOND,-1);// 將秒減一 得到的 23:59:59
calendar.set(Calendar.MILLISECOND,0);
String lastDay = format.format(calendar.getTime());
System.out.println(lastDay);
Integer newFirstDay = DateFormatUtil.transForMilliSecond(lastDay);// 將時間字元轉化成時間戳
return newFirstDay;
}
public static void main(String[] args) {
//System.out.println(getIntegralTimeEnd());
//System.out.println(transForDate2(transForMilliSecond("2015-02-25 00:00:00")));
//System.out.println(transForMilliSecond("2016-01-25","yyyy-mm-dd"));
//System.out.println(transForDate1(transForMilliSecond("1970-01-01 00:00:00","yyyy-mm-dd HH:mm:ss")));
//System.out.println(currentTimeStamp());
//System.out.println(transForDate(currentTimeStamp()));
//System.out.println(new Date());
//System.out.println(DateUtils.getDate());
//System.out.println(transFromTime("00:00:01"));
//System.out.println(transToTime(transFromTime("15:01:13")));
/*Date date = new Date();
String str = DateFormatUtil.formatDate(date,"yyyyMMddHHmmss");
int it = (int) Math.round(Math.random()*(99999-10000)+10000);
String name = str+"_"+it+".";
System.out.println(name);
File file = new File("HelloWorld.java");
String fileName = file.getName();
String suffix = fileName.substring(fileName.lastIndexOf("."));
System.out.println(suffix); */
// 獲取一個時間段
/*String time = "2018-05-11 00:00:00 - 2018-05-19 00:00:00";
String time_1 = time.substring(0,20);
String time_2 = time.substring(22, 41);
Integer date_1 = DateFormatUtil.transForMilliSecond(time_1, "yyyy-MM-dd HH:mm:ss");
Integer date_2 = DateFormatUtil.transForMilliSecond(time_2, "yyyy-MM-dd HH:mm:ss");
System.out.println(time_1 + "::::::" + time_2);
System.out.println(date_1 + "######" + date_2);*/
}
}
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.apache.commons.lang3.StringUtils;
/**
* @author DingJiaCheng
* */
public class DateFormatUtil {
/**
* 時間戳轉日期
* @param ms
* @return
*/
public static Date transForDate(Integer ms){
if(ms==null){
ms=0;
}
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date temp=null;
if(ms!=null){
try {
String str=sdf.format(msl);
temp=sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
}
return temp;
}
/**
* 獲取晚上9點半的時間戳
*
* @return
*/
public static int getTimes(int day, int hour, int minute) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, day);
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.MILLISECOND, 0);
return (int) (cal.getTimeInMillis() / 1000);
}
/**
* 獲取當前時間往上的整點時間
*
* @return
*/
public static int getIntegralTime() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.HOUR_OF_DAY, 1);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
return (int) (cal.getTimeInMillis() / 1000);
}
public static int getIntegralTimeEnd() {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 24);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
return (int) (cal.getTimeInMillis() / 1000);
}
/**
* 時間戳轉日期
* @param ms
* @return
*/
public static Date transForDate3(Integer ms){
if(ms==null){
ms=0;
}
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date temp=null;
if(ms!=null){
try {
String str=sdf.format(msl);
temp=sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
}
return temp;
}
/**
* 時間戳轉日期
* @param ms
* @return
*/
public static Date transForDate(Long ms){
if(ms==null){
ms=(long)0;
}
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date temp=null;
if(ms!=null){
try {
String str=sdf.format(msl);
temp=sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
}
return temp;
}
public static String transForDate1(Integer ms){
String str = "";
if(ms!=null){
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if(ms!=null){
try {
str=sdf.format(msl);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return str;
}
public static String transForDate2(Integer ms){
String str = "";
if(ms!=null){
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
if(ms!=null){
try {
str=sdf.format(msl);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return str;
}
public static String transForDate4(Integer ms){
String str = "";
if(ms!=null){
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy.MM.dd");
if(ms!=null){
try {
str=sdf.format(msl);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return str;
}
public static String transForDate5(Integer ms){
String str = "";
if(ms!=null){
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
if(ms!=null){
try {
str=sdf.format(msl);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return str;
}
public static String transForDateInChinese(Integer ms){
String str = "";
if(ms!=null){
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
if(ms!=null){
try {
str=sdf.format(msl);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return str;
}
/**
* 日期轉時間戳
* @param date
* @return
*/
public static Integer transForMilliSecond(Date date){
if(date==null) return null;
return (int)(date.getTime()/1000);
}
/**
* 獲取當前時間戳
* @return
*/
public static Integer currentTimeStamp(){
return (int)(System.currentTimeMillis()/1000);
}
/**
* 日期字串轉時間戳
* @param dateStr
* @return
*/
public static Integer transForMilliSecond(String dateStr){
Date date = DateFormatUtil.formatDate(dateStr);
return date == null ? null : DateFormatUtil.transForMilliSecond(date);
}
/**
* 日期字串轉時間戳
* @param dateStr
* @return
*/
public static Integer transForMilliSecond(String dateStr,String format){
Date date = DateFormatUtil.formatDate(dateStr,format);
return date == null ? null : DateFormatUtil.transForMilliSecond(date);
}
/**
* 日期字串轉時間戳
* @param dateStr
* @param 格式 如"yyyy-mm-dd"
* @return
*/
public static Integer transForMilliSecondByTim(String dateStr,String tim){
SimpleDateFormat sdf=new SimpleDateFormat(tim);
Date date =null;
try {
date = sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return date == null ? null : DateFormatUtil.transForMilliSecond(date);
}
/**
* 字串轉日期,格式為:"yyyy-MM-dd HH:mm:ss"
* @param dateStr
* @return
*/
public static Date formatDate(String dateStr){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date result=null;
try {
result = sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return result;
}
/**
* 字串轉日期,格式為:"yyyy-MM-dd HH:mm:ss"
* @param dateStr
* @return
*/
public static Date formatDate(String dateStr,String format){
SimpleDateFormat sdf=new SimpleDateFormat(format);
Date result=null;
try {
result = sdf.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return result;
}
/**
* 日期轉字串
* @param date
* @return
*/
public static String formatDate(Date date){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String result=null;
result = sdf.format(date);
return result;
}
/**
* 日期轉字串
* @param date
* @return
*/
public static String formatDate(Date date,String format){
SimpleDateFormat sdf=new SimpleDateFormat(format);
String result=null;
result = sdf.format(date);
return result;
}
/**
* 時間戳格式化輸出(httl模版用)
*
* @param ms 時間戳
* @param format 格式化
* @return
*/
public static String transForDate(Integer ms, String format){
String str = "";
if(ms!=null){
long msl=(long)ms*1000;
SimpleDateFormat sdf=new SimpleDateFormat(format);
if(!ms.equals(0)){
try {
str=sdf.format(msl);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return str;
}
/**
* 取BigDecimal型別數的整數或小數部分(httl模版用)
*
* @param b 值
* @param mode 模式 0取整 1去小數部分
* @return
*/
public static String splitBigDecimal(BigDecimal b, int mode) {
DecimalFormat df = new DecimalFormat("0.00");
String s = df.format(b);
if(mode==0){
return s.split("\\.")[0];
}else {
return "."+s.split("\\.")[1];
}
}
/**
* 計算兩個日期之間差的天數(httl模版用)
*
* @param ts1 時間戳1
* @param ts2 時間戳2
* @return
*/
public static int caculate2Days(Integer ts1, Integer ts2) {
Date firstDate = DateFormatUtil.transForDate(ts1);
Date secondDate = DateFormatUtil.transForDate(ts2);
Calendar calendar = Calendar.getInstance();
calendar.setTime(firstDate);
int dayNum1 = calendar.get(Calendar.DAY_OF_YEAR);
calendar.setTime(secondDate);
int dayNum2 = calendar.get(Calendar.DAY_OF_YEAR);
return Math.abs(dayNum1 - dayNum2);
}
/**
* 給手機加密中間四位加星號
*
* @param mobile
* @return
*/
public String mobileSerect(String mobile){
if(!StringUtils.isBlank(mobile)){
int between = mobile.length()/2;
mobile = mobile.substring(0, between-2)+"****"+mobile.substring(between+2, mobile.length());
}
return mobile;
}
/**
* 給郵箱加密加星號
*
* @param email
* @return
*/
public String emailSerect(String email) {
if(!StringUtils.isBlank(email)){
int length = email.lastIndexOf("@");
email = email.substring(0, 2)+"****"+email.substring(length-2, email.length());
}
return email;
}
/**
* BigDecimal型別資料相加
*
* @param BigDecimal source
* @param BigDecimal target
* @return
*/
public BigDecimal sumBigDicimal(BigDecimal source, BigDecimal target) {
source = source.add(target);
return source;
}
/**
* BigDecimal型別資料相加
*
* @param BigDecimal source
* @param BigDecimal target
* @return
*/
public BigDecimal sumBigDicimalAndDouble(BigDecimal source, Double target) {
BigDecimal new_target = new BigDecimal(target);
source = source.add(new_target);
return source;
}
/**
* BigDecimal型別資料相減
*
* @param BigDecimal source
* @param BigDecimal target
* @return
*/
public BigDecimal subBigDicimal(BigDecimal source, BigDecimal target) {
source = source.subtract(target);
return source;
}
/**
* 獲取傳入時間和當前時間的時間差
* @return
*/
public static Long getTimediff(int timeStamp){
Date d1 = DateFormatUtil.transForDate(timeStamp);
Date today = new Date();
if(d1.getTime()<today.getTime()){
return null;
}
return (d1.getTime()-today.getTime())/1000;
}
/**
* 獲取某周的第一天日期
* @param week 0 當週 1 上一週 -1 下一週
* @return
*/
public static String weekFirstDay(int week){
Calendar c1 = Calendar.getInstance();
int dow = c1.get(Calendar.DAY_OF_WEEK);
c1.add(Calendar.DATE, -dow-7*(week-1)-5 );
String d1 = new SimpleDateFormat("yyyy-MM-dd").format(c1.getTime());
return d1+" 00:00:00";
}
/**
* 當前時間加一年
*/
public static String addYear(int startTime){
Date firstDate = DateFormatUtil.transForDate(startTime);
Calendar calendar = Calendar.getInstance();
calendar.setTime(firstDate);
calendar.add(Calendar.YEAR,1);
String d1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime());
return d1;
}
/**
* 獲取某周的最後一天日期
* @param week
* @return
*/
public static String weekLastDay(int week){
Calendar c1 = Calendar.getInstance();
int dow = c1.get(Calendar.DAY_OF_WEEK);
c1.add(Calendar.DATE, -dow-7*(week-1)+1);
String d1 = new SimpleDateFormat("yyyy-MM-dd").format(c1.getTime());
return d1+" 23:59:59";
}
/**
* 和當前時間比對
* @return
*/
public static boolean greaterThanNow(int timeStamp){
Date d1 = DateFormatUtil.transForDate(timeStamp);
Date today = new Date();
if(d1.getTime()>=today.getTime()){
return true;
}
return false;
}
/**
* HH:mm:ss格式時間轉換為1970-01-01日的時間戳(也就是隻有時間沒有日期的情況要求使用時間戳表示時間)
* @author DingJiaCheng
* */
public static int transFromTime(String time){
return transForMilliSecond("1970-01-01 "+time,"yyyy-mm-dd HH:mm:ss");
}
/**
* 時間戳轉換為HH:mm:ss格式時間(日期去除)
* @author DingJiaCheng
* */
public static String transToTime(int time){
String s = new String(transForDate1(time));
String ss[] = s.split(" ");
return ss[1];
}
public static int transToChuo(String dateString){
SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd");
int res = 0;
try {
Date date=simpleDateFormat .parse(dateString);
res = (int) date.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return res;
}
// 獲取當前月的第一天
public static Integer getTheFirstDayOfTheCurrentMonth() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();//獲取當前日期
calendar .set(Calendar.DAY_OF_MONTH,1);//設定為1號,當前日期既為本月第一天
calendar .set(Calendar.HOUR_OF_DAY,0); // 將小時置0
calendar.set(Calendar.MINUTE,0);// 將分鐘置0
calendar.set(Calendar.SECOND,0);// 將秒置0
calendar.set(Calendar.MILLISECOND,0);
String firstDay = format.format(calendar .getTime()); // 得到時間字元
System.out.println(firstDay);
Integer newFirstDay = DateFormatUtil.transForMilliSecond(firstDay);// 將時間字元轉化成時間戳
return newFirstDay;
}
// 獲取當前月的最後一天
public static Integer getTheLastDayOfTheCurrentMonth() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();//獲取當前日期
calendar.add(Calendar.MONTH, 1);// 當前月份加1,得到下一月份
calendar .set(Calendar.DAY_OF_MONTH,1);//設定為1號,當前日期既為本月第一天
calendar .set(Calendar.HOUR_OF_DAY,0); // 將小時置0
calendar.set(Calendar.MINUTE,0);// 將分鐘置0
calendar.set(Calendar.SECOND,-1);// 將秒減一 得到的 23:59:59
calendar.set(Calendar.MILLISECOND,0);
String lastDay = format.format(calendar.getTime());
System.out.println(lastDay);
Integer newFirstDay = DateFormatUtil.transForMilliSecond(lastDay);// 將時間字元轉化成時間戳
return newFirstDay;
}
public static void main(String[] args) {
//System.out.println(getIntegralTimeEnd());
//System.out.println(transForDate2(transForMilliSecond("2015-02-25 00:00:00")));
//System.out.println(transForMilliSecond("2016-01-25","yyyy-mm-dd"));
//System.out.println(transForDate1(transForMilliSecond("1970-01-01 00:00:00","yyyy-mm-dd HH:mm:ss")));
//System.out.println(currentTimeStamp());
//System.out.println(transForDate(currentTimeStamp()));
//System.out.println(new Date());
//System.out.println(DateUtils.getDate());
//System.out.println(transFromTime("00:00:01"));
//System.out.println(transToTime(transFromTime("15:01:13")));
/*Date date = new Date();
String str = DateFormatUtil.formatDate(date,"yyyyMMddHHmmss");
int it = (int) Math.round(Math.random()*(99999-10000)+10000);
String name = str+"_"+it+".";
System.out.println(name);
File file = new File("HelloWorld.java");
String fileName = file.getName();
String suffix = fileName.substring(fileName.lastIndexOf("."));
System.out.println(suffix); */
// 獲取一個時間段
/*String time = "2018-05-11 00:00:00 - 2018-05-19 00:00:00";
String time_1 = time.substring(0,20);
String time_2 = time.substring(22, 41);
Integer date_1 = DateFormatUtil.transForMilliSecond(time_1, "yyyy-MM-dd HH:mm:ss");
Integer date_2 = DateFormatUtil.transForMilliSecond(time_2, "yyyy-MM-dd HH:mm:ss");
System.out.println(time_1 + "::::::" + time_2);
System.out.println(date_1 + "######" + date_2);*/
}
}