java工具包一:日期处理

时间:2023-03-10 02:40:32
java工具包一:日期处理

作者:NiceCui

  • 本文谢绝转载,如需转载需征得作者本人同意,谢谢。
  • 本文链接:http://www.cnblogs.com/NiceCui/p/7846812.html
  • 邮箱:moyi@moyibolg.com
  • 日期:2017-11-16

平时写代码有时会常用到一些处理日期的逻辑,自己写了一个工具包,方便每次处理

 import java.text.ParseException;

 import java.text.SimpleDateFormat;
import java.util.Date; import org.junit.Test; /**
* 日期处理工具包
* @author NiceCui
* @date 2017-11-14
*
*/
public class DateTool { /**
* 讲字符串格式的日期 转换成 自定义的 日期格式 返回Date类型
*
* @param String
* date
* @param String
* format
* @return Date
*/
public static Date getDate(String date, String format) {
if (date == null)
return null;
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat(format);
try {
return formatdatetime.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
} /**
* 讲Date类型的日期 转换成 String 字符串形式的
*
* @param date
* @return String
*/
public static String getTimeStr(Date date) {
if (date == null)
return null;
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
return formatdatetime.format(date);
} /**
* 比较两个 Date类型的 日期 是否是一样的
*
* @param Date
* day1
* @param Date
* day2
* @return boolean
*/
public static boolean isSameDay(Date day1, Date day2) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String ds1 = dateFormat.format(day1);
String ds2 = dateFormat.format(day2);
if (ds1.equals(ds2)) {
return true;
} else {
return false;
}
} /**
* 返回开始日期 和 结束日期直接间隔的天数 返回的int类型 单位是 天
*
* @param Date
* start
* @param Date
* end
* @return int
*/
public static int getDays(Date start, Date end) {
Date normStart = DateTool.getDateBegin(start);
Date normEnd = DateTool.getDateBegin(end);
int days = (int) ((normEnd.getTime() - normStart.getTime()) / (1000L * 24 * 3600)); return days;
} /**
* 获得一天的第1s
*
* @param date
* @return
*/
public static Date getDateBegin(Date date) {
Date dateBegin = DateTool.getDate(DateTool.getDateStr(date), "yyyy-MM-dd");
return dateBegin;
}
public static String getDateStr(Date date) {
if(date==null)
return null;
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy-MM-dd");
return formatdatetime.format(date);
}
public static String getDateStr(Date date, String format) {
if(date==null) return null;
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat(format);
return formatdatetime.format(date);
} /**
* 获得一天的最后1s
*
* @param date
* @return
*/
public static Date getDateEnd(Date date) {
Date endDate = DateTool.getDate(DateTool.getDateStr(new Date()) + " 23:59:59", "yyyy-MM-dd HH:mm:ss");
return endDate;
} /**
* 讲字符串形式的日期 返回 固定格式 年月日形式的Date形式的 日期
*
* @param String
* datestr
* @return Date
*/
public static Date getDateStr(String datestr) {
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy-MM-dd");
try {
return formatdatetime.parse(datestr);
} catch (ParseException e) {
e.printStackTrace();
return null;
}
} /**
* 返回 String 类型的 年
*
* @param date
* @return
*/
public static String getYearStr(Date date) {
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy");
return formatdatetime.format(date);
} /**
* 返回 int 类型 的年
*
* @param date
* @return
*/
public static int getYear(Date date) {
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy");
return Integer.parseInt(formatdatetime.format(date));
} /**
* 返回int类型的月
*
* @param date
* @return
*/
public static int getMonth(Date date) {
java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("MM");
return Integer.parseInt(formatdatetime.format(date));
} /**
* "Tue May 17 10:26:26 CST 2011 由date.toString()得到 像这样的日期如何格式化?": String dstr =
* "Tue May 17 10:26:26 CST 2011"; SimpleDateFormat formatter = new
* SimpleDateFormat("EEEE MMM dd HH:mm:ss Z yyyy"); Date d =
* formatter.parse(dstr);
*
* @return
*/
public static Date parseDateStr(String dstr) {
Date d = null;
SimpleDateFormat formatter = new SimpleDateFormat("EEEE MMM dd HH:mm:ss Z yyyy");
try {
d = formatter.parse(dstr);
} catch (ParseException e) {
formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
try {
d = formatter.parse(dstr);
} catch (Exception e2) {
// TODO: handle exception
}
}
return d;
} @Test
public void test() { String startTime = "2017-11-16";
// Date time = Common.getDate(startTime+" 00:00:00","yyyy-MM-dd HH:mm:ss");
// SimpleDateFormat fomat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// System.out.println(fomat.format(time)); // Date date = new Date();
// Date date1 = new Date();
// System.out.println(isSameDay(date,date1)); System.out.println(parseDateStr(startTime));
} }