java將:String轉化為Date的工具類
阿新 • • 發佈:2019-01-23
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);
}
}
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);
}
}