1. 程式人生 > 實用技巧 >時間工具類

時間工具類

package com.ljl.test;

import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
 * 日期處理
 */
public class DateUtils {

    public static SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    
public static String dateToStr(Date date){ return sdf.format(date); } public static Date strToDate(String time){ try { return sdf.parse(time); } catch (ParseException e) { e.printStackTrace(); } return null; } //獲取當天的開始時間
public static Date getDayBegin() { Calendar cal = Calendar.getInstance(); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); // cal.set(Calendar.MILLISECOND, 0); return cal.getTime(); } //獲取當天的結束時間 public
static Date getDayEnd() { Calendar cal = new GregorianCalendar(); cal.set(Calendar.HOUR_OF_DAY, 23); cal.set(Calendar.MINUTE, 59); cal.set(Calendar.SECOND, 59); return cal.getTime(); } //獲取昨天的開始時間 public static Date getBeginDayOfYesterday() { Calendar cal = new GregorianCalendar(); cal.setTime(getDayBegin()); cal.add(Calendar.DAY_OF_MONTH, -1); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); return cal.getTime(); } //獲取昨天的結束時間 public static Date getEndDayOfYesterDay() { Calendar cal = new GregorianCalendar(); cal.setTime(getDayEnd()); cal.add(Calendar.DAY_OF_MONTH, -1); cal.set(Calendar.HOUR_OF_DAY, 23); cal.set(Calendar.MINUTE, 59); cal.set(Calendar.SECOND, 59); return cal.getTime(); } //獲取本週的開始時間 @SuppressWarnings("unused") public static Date getBeginDayOfWeek() { Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); int dayofweek = cal.get(Calendar.DAY_OF_WEEK); if (dayofweek == 1) { dayofweek += 7; } cal.add(Calendar.DATE, 2 - dayofweek); return getDayStartTime(cal.getTime()); } //獲取本週的結束時間 public static Date getEndDayOfWeek(){ Calendar cal = Calendar.getInstance(); cal.setTime(getBeginDayOfWeek()); cal.add(Calendar.DAY_OF_WEEK, 6); Date weekEndSta = cal.getTime(); return getDayEndTime(weekEndSta); } //獲取上週的開始時間 @SuppressWarnings("unused") public static Date getBeginDayOfLastWeek() { Date date = new Date(); if (date == null) { return null; } Calendar cal = Calendar.getInstance(); cal.setTime(date); int dayofweek = cal.get(Calendar.DAY_OF_WEEK); if (dayofweek == 1) { dayofweek += 7; } cal.add(Calendar.DATE, 2 - dayofweek - 7); return getDayStartTime(cal.getTime()); } //獲取上週的結束時間 public static Date getEndDayOfLastWeek(){ Calendar cal = Calendar.getInstance(); cal.setTime(getBeginDayOfLastWeek()); cal.add(Calendar.DAY_OF_WEEK, 6); Date weekEndSta = cal.getTime(); return getDayEndTime(weekEndSta); } //獲取本月的開始時間 public static Date getBeginDayOfMonth() { Calendar calendar = Calendar.getInstance(); calendar.set(getNowYear(), getNowMonth() - 1, 1); return getDayStartTime(calendar.getTime()); } //獲取本月的結束時間 public static Date getEndDayOfMonth() { Calendar calendar = Calendar.getInstance(); calendar.set(getNowYear(), getNowMonth() - 1, 1); int day = calendar.getActualMaximum(5); calendar.set(getNowYear(), getNowMonth() - 1, day); return getDayEndTime(calendar.getTime()); } //獲取上月的開始時間 public static Date getBeginDayOfLastMonth() { Calendar calendar = Calendar.getInstance(); calendar.set(getNowYear(), getNowMonth() - 2, 1); return getDayStartTime(calendar.getTime()); } //獲取上月的結束時間 public static Date getEndDayOfLastMonth() { Calendar calendar = Calendar.getInstance(); calendar.set(getNowYear(), getNowMonth() - 2, 1); int day = calendar.getActualMaximum(5); calendar.set(getNowYear(), getNowMonth() - 2, day); return getDayEndTime(calendar.getTime()); } //獲取某個日期的開始時間 public static Timestamp getDayStartTime(Date d) { Calendar calendar = Calendar.getInstance(); if(null != d) calendar.setTime(d); calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0); calendar.set(Calendar.MILLISECOND, 0); return new Timestamp(calendar.getTimeInMillis()); } //獲取某個日期的結束時間 public static Timestamp getDayEndTime(Date d) { Calendar calendar = Calendar.getInstance(); if(null != d) calendar.setTime(d); calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59); calendar.set(Calendar.MILLISECOND, 999); return new Timestamp(calendar.getTimeInMillis()); } //獲取今年是哪一年 public static Integer getNowYear() { Date date = new Date(); GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance(); gc.setTime(date); return Integer.valueOf(gc.get(1)); } //獲取本月是哪一月 public static int getNowMonth() { Date date = new Date(); GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance(); gc.setTime(date); return gc.get(2) + 1; } public static void main(String[] args) throws Exception { //測試 System.out.println(dateToStr(getDayBegin())); System.out.println(dateToStr(getDayEnd())); System.out.println(dateToStr(getBeginDayOfYesterday())); System.out.println(dateToStr(getEndDayOfYesterDay())); System.out.println(getBeginDayOfLastWeek()); System.out.println(getEndDayOfLastWeek()); System.out.println(getBeginDayOfWeek()); System.out.println(getEndDayOfWeek()); System.out.println(getBeginDayOfLastMonth()); System.out.println(getEndDayOfLastMonth()); System.out.println(getBeginDayOfMonth()); System.out.println(getEndDayOfMonth()); } }