java代碼的時間類

package com.fzl.util;

import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class DateUtil {

/**
* 默認日期格式
*/
public static String DEFAULT_FORMAT = "yyyy-MM-dd";
/**
* 格式化日期
* @param date 日期對象
* @return String 日期字符串
*/
public static String formatDate(Date date){
SimpleDateFormat f = new SimpleDateFormat(DEFAULT_FORMAT);
String sDate = f.format(date);
return sDate;
}

/**
* 獲取當年的第一天
* @param year
* @return
*/
public static Date getCurrYearFirst(){
Calendar currCal=Calendar.getInstance();
int currentYear = currCal.get(Calendar.YEAR);
return getYearFirst(currentYear);
}

/**
* 獲取當年的最後一天
* @param year
* @return
*/
public static Date getCurrYearLast(){
Calendar currCal=Calendar.getInstance();
int currentYear = currCal.get(Calendar.YEAR);
return getYearLast(currentYear);
}

/**
* 獲取某年第一天日期
* @param year 年份
* @return Date
*/
public static Date getYearFirst(int year){
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, year);
Date currYearFirst = calendar.getTime();
return currYearFirst;
}

/**
* 獲取某年最後一天日期
* @param year 年份
* @return Date
*/
public static Date getYearLast(int year){
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, year);
calendar.roll(Calendar.DAY_OF_YEAR, -1);
Date currYearLast = calendar.getTime();
return currYearLast;
}


public static String getAfterDay(String date,int num ){
//用給定的模式和默認語言環境的日期格式符號構造 SimpleDateFormat。
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd ");

Date dt=null;
try{
//解析字符串的文本,生成 Date
dt=sdf.parse(date);
}
catch(Exception e){
e.printStackTrace();
}
//使用默認時區和語言環境獲得一個日曆。
Calendar calendar=Calendar.getInstance();
//使用給定的 Date 設置此 Calendar 的時間。
calendar.setTime(dt);
//根據日曆的規則,爲給定的日曆字段添加或減去指定的時間量。
calendar.add(Calendar.DATE, num);
//用給定的模式和給定語言環境的默認日期格式符號構造 SimpleDateFormat
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd",
Locale.ENGLISH);
//將給定的 Date 格式化爲日期/時間字符串,
//calendar.getTime()返回一個表示此 Calendar 時間值(從曆元至現在的毫秒偏移量)的 Date 對象。
return simpleDateFormat.format(calendar.getTime());
}

public static String getBeforeDate(int num){
//使用默認時區和語言環境獲得一個日曆。
Calendar calendar=Calendar.getInstance();
//new Date()分配 Date 對象並初始化此對象,以表示分配它的時間(精確到毫秒)
calendar.setTime(new Date());
//根據日曆的規則,爲給定的日曆字段添加或減去指定的時間量
calendar.add(Calendar.DATE, -num);
//用給定的模式和給定語言環境的默認日期格式符號構造 SimpleDateFormat
SimpleDateFormat simpleDateFormate=new SimpleDateFormat("yyyy-MM-dd",
Locale.ENGLISH);
return simpleDateFormate.format(calendar.getTime());

}
//獲得當前的日期
public static String getdate(){
// 分配 Date 對象並初始化此對象,以表示分配它的時間(精確到毫秒)
Date dt=new Date();
//dt.getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 對象表示的毫秒數。
long tmlong=dt.getTime();
//分配 Date 對象並初始化此對象,以表示自從標準基準時間(稱爲“曆元(epoch)”,
//Date(tmlong)即 1970 年 1 月 1 日 00:00:00 GMT)以來的指定毫秒數。
return (new java.sql.Date(tmlong).toString());

}
//獲得當前的日期時間,精確到時分秒,並轉化爲字符串的形式
public static String getDateTime(){
Date dt=new Date();
long tmlong=dt.getTime();
//Time(tmlong):使用毫秒時間值構造 Time 對象。
return (new java.sql.Date(tmlong)+" "+
(new java.sql.Time(tmlong))).toString();

}
//字符串轉換成日期時間,不精確到時分秒
public static Date getStringToDate(String day){
//用給定的模式和默認語言環境的日期格式符號構造 SimpleDateFormat。
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//HH是24小時制,hh是12小時制
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");
Date dt = new Date();
try{

dt=sdf2.parse(day);

}
catch(Exception e){
e.printStackTrace();
}

// return new java.sql.Date(dt.getTime());
return dt;
}


//字符串轉換成日期時間,精確到時分秒
public static Date getStringToDateTime(String day){
//用給定的模式和默認語言環境的日期格式符號構造 SimpleDateFormat。
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//HH是24小時制,hh是12小時制
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");
Date dt = new Date();
DateFormat df2 = DateFormat.getDateTimeInstance();//可以精確到時分秒
try{

dt=sdf2.parse(day);
}
catch(Exception e){
e.printStackTrace();
}
// return dt;
return new java.sql.Date(dt.getTime());

}
//判斷字符串是否可以轉換成date格式
public static boolean isValidDate(String s)
{
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
// 設置lenient爲false. 否則SimpleDateFormat會比較寬鬆地驗證日期,
//比如2007/02/29會被接受,並轉換成2007/03/01
dateFormat.setLenient(false);
try
{
dateFormat.parse(s);
return true;
}
catch (Exception e)
{
// 如果throw java.text.ParseException或者NullPointerException,就說明格式不對
return false;
}
}

//傳入日期格式的時間,並將之轉換成字符串
public static String dateToString(Date date){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
String day=sdf.format(date);
return day;
}

//將util.date轉化爲java.sql.Timestamp,以免util.date存入數據庫的時時分秒損失
//此方法可能沒什麼用
public static Timestamp getTimestamp(Date date) {
return new java.sql.Timestamp(date.getTime());
}
}

發佈了142 篇原創文章 · 獲贊 51 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章