1. 程式人生 > >java將:String轉化為Date的工具類

java將:String轉化為Date的工具類

package com.yanshu.logback;


import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;


import com.mysql.fabric.xmlrpc.base.Data;


public class DataTools {


/**
* 將字串20180123轉換為2018-01-23日期格式 針對一個的操作
* @param string
* @return
* @throws ParseException
*/
public static String StrToDate(String str) throws ParseException
{
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat dateFormat2=new SimpleDateFormat("yyyy-MM-dd");
String result=dateFormat2.format(dateFormat.parse(str));
//System.err.println(result);
return result;
}
/**
* 將2018-01-23的字串轉換成20180123的格式 針對一個日期的操作
* @param dateStr
* @return
* @throws ParseException
*/
public static String DateToStr(String dateStr) throws ParseException
{
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat dateFormat2=new SimpleDateFormat("yyyyMMdd");
Date parse = dateFormat.parse(dateStr);
String format = dateFormat2.format(parse);
return format;

}

/** 
* 兩個時間之間的天數 
* 初始化的格式 2018-01-02
long days = getDays("2018-01-22", "2018-01-02");
* @param date1  2018-01-22
* @param date2 2018-01-02
* @return 
*/  
public static long getDays(String date1, String date2) {  
   if (date1 == null || date1.equals(""))  
       return 0;  
   if (date2 == null || date2.equals(""))  
       return 0;  
   // 轉換為標準時間  
   SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");  
   java.util.Date date = null;  
   java.util.Date mydate = null;  
   try {  
       date = myFormatter.parse(date1);  
       mydate = myFormatter.parse(date2);  
   } catch (Exception e) {  
   }  
   long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);  
   return day;  



/** 
* 將短時間格式字串轉換為時間 yyyy-MM-dd 
*  
* @param strDate 
* @return 
*/  
public static Date strToDate(String strDate) {  
   SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");  
   ParsePosition pos = new ParsePosition(0);  
   Date strtodate = formatter.parse(strDate, pos);  
   return strtodate;  
}  
/** 
* 根據一個日期,返回是星期幾的字串 
*  
* @param sdate 
* @return 
*/  
public static String getWeek(String sdate) {  
//System.out.println("sdate--->>>"+sdate);
   // 再轉換為時間  
   Date date = strToDate(sdate);  
   Calendar c = Calendar.getInstance();  
   c.setTime(date);  
   // int hour=c.get(Calendar.DAY_OF_WEEK);  
   // hour中存的就是星期幾了,其範圍 1~7  
   // 1=星期日 7=星期六,其他類推  
   return new SimpleDateFormat("EEEE").format(c.getTime());  


/*
*某一天的日期轉換
*/
public static String getWeekStr(String sdate) {  
   String str = "";  
   str = getWeek(sdate);  
   if ("1".equals(str)) {  
       str = "星期日";  
   } else if ("2".equals(str)) {  
       str = "星期一";  
   } else if ("3".equals(str)) {  
       str = "星期二";  
   } else if ("4".equals(str)) {  
       str = "星期三";  
   } else if ("5".equals(str)) {  
       str = "星期四";  
   } else if ("6".equals(str)) {  
       str = "星期五";  
   } else if ("7".equals(str)) {  
       str = "星期六";  
   }  
   return str;  
}  

/**
* List資料中 一次遍歷多個日期
* @param sdate
* @return
*/
public static List getWeekStrArray(List sdate) {  
System.out.println(sdate.size());
List list=new ArrayList<>();
String str = "";  
for(int i=0;i<sdate.size();i++)
{
String object = (String)sdate.get(i);
str=getWeek(object);
list.add(str);
}
   if ("1".equals(str)) {  
       str = "星期日";  
   } else if ("2".equals(str)) {  
       str = "星期一";  
   } else if ("3".equals(str)) {  
       str = "星期二";  
   } else if ("4".equals(str)) {  
       str = "星期三";  
   } else if ("5".equals(str)) {  
       str = "星期四";  
   } else if ("6".equals(str)) {  
       str = "星期五";  
   } else if ("7".equals(str)) {  
       str = "星期六";  
   }  
   return list;  
}  



public static void main(String[] args) throws ParseException {

List list=new ArrayList();
list.add("20170103");
list.add("20170104");
list.add("20170105");
list.add("20170106");
list.add("20170107");

list.add("20170108");
list.add("20170109");
list.add("20170110");
list.add("20170111");
list.add("20170112");
list.add("20180123");

//StrToDate(String str)
//將20180102 轉化為2018-01-23
List list2=new ArrayList();
for(int i=0;i<list.size();i++)
{
String object =(String) list.get(i);
String strToDate = StrToDate(object);
//System.out.println("object---->>>"+strToDate);
list2.add(strToDate);
}
System.out.println("list2--->>>"+list2);
List weekStrArray = getWeekStrArray(list2);
 
System.out.println(weekStrArray);
String string="20180123";
System.out.println(string);





        
StrToDate(string);
String dateToStr = DateToStr("2017-01-26");
System.out.println("2017-01-26--->>>>"+dateToStr);
//判斷兩個時間段的相差幾天
long days = getDays("2018-01-22", "2018-01-02");
System.out.println("days--->>>"+days);
}


}