1. 程式人生 > >Java系統中時間封裝處理

Java系統中時間封裝處理

package com.cloud.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
	/* 私有構造方法,工具類不需要例項化 */
	private DateUtil(){}
	/* 判斷是否是時間型別 */
	public static boolean idDate(String dateStr){
		try {
			DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
			df.parse(dateStr);
			return true;
		} catch (ParseException e) {
			return false;
		}
	}
	/* 格式化日期 */
	public static Date parseDate(String dateStr, String format) {
		Date date = null;
		try {
			java.text.DateFormat df = new java.text.SimpleDateFormat(format);
			String dt = (dateStr).replaceAll("-", "/");
			if ((!dt.equals("")) && (dt.length() < format.length())) {
				dt += format.substring(dt.length()).replaceAll("[YyMmDdHhSs]","0");
			}
			date = (Date) df.parse(dt);
		} catch (Exception e) {
		}
		return date;
	}
	/* 格式化日期:yyyy/MM/dd 形式 */
	public static Date parseDate(String dateStr){
		return parseDate(dateStr.replace("-", "/"),"yyyy/MM/dd");
	}
	/* 格式化日期:java.sql.Date 型別轉換為 java.util.Date型別 */
	public static Date parseDate(java.sql.Date date){
		return date;
	}
	/* 格式化日期:  java.util.Date型別轉換java.sql.Date型別 */
	public static java.sql.Date parseSqlDate(Date date){
		if(date!=null)
			return new java.sql.Date(date.getTime());
		else
			return null;
	}
	/* 根據String日期,並按照格式,返回SQL日期 */
	public static java.sql.Date parseSqlDate(String dateStr,String format){
		Date date = parseDate(dateStr, format);
		return parseSqlDate(date);
	}
	/* 根據String日期,返回SQL日期  */
	public static java.sql.Date parseSqlDate(String dateStr){
		return parseSqlDate(dateStr, "yyyy/MM/dd");
	}
	/* 根據String日期,並根據一定的格式轉換成java.sql.Timestamp的日期  */
	public static java.sql.Timestamp parseTimestamp(String dateStr,String format){
		Date date = parseDate(dateStr, format);
		if(date!=null){
			long time = date.getTime();
			return new java.sql.Timestamp(time);
		} else
			return null;
	}
	/* 根據dateStr 字串日期  返回yyyy/MM/dd  HH:mm:ss 格式的java.sql.Timestamp日期  */
	public static java.sql.Timestamp parseTimestamp(String dateStr){
		return parseTimestamp(dateStr.replace("-", "/"), "yyyy/MM/dd HH:mm:ss");
	}
	/* 格式化date型別為String型別日期格式  */
	public static String format(Date date,String format){
		String result = "";
		try{
			if(date!=null){
				DateFormat df = new SimpleDateFormat(format);
				result = df.format(date);
			}
		} catch(Exception e){}
		return result;
	}
	/* 格式化date型別  */
	public static String format(Date date){
		return format(date,"yyyy/MM/dd");
	}
	/* 獲取日期的年份 */
	public static int getYear(Date date){
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.get(Calendar.YEAR);
	}
	/* 獲取日期的月份 */
	public static int getMonth(Date date){
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.get(Calendar.MONTH)+1;
	}
	/* 獲取日期的天份 */
	public static int getDay(Date date){
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.get(Calendar.DAY_OF_MONTH);
	}
	/* 獲取小時 */
	public static int getHour(Date date){
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.get(Calendar.HOUR_OF_DAY);
	}
	/* 獲取分鐘 */
	public static int getMinute(Date date){
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.get(Calendar.MINUTE);
	}
	/* 獲取秒鐘 */
	public static int getSecond(Date date){
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.get(Calendar.SECOND);
	}
	/* 獲取毫秒 */
	public static long getMillis(Date date){
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.getTimeInMillis();
	}
	/* 返回字元型別時間 */
	public static String getTime(Date date){
		return format(date, "HH:mm:ss");
	}
	/* 返回字元型別的日期和時間 */
	public static String getDateTime(Date date){
		return format(date, "yyyy/MM/dd HH:mm:ss");
	}
	/* 返回日期相加後的日期 */
	public static Date addDate(Date date,int day){
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(getMillis(date)+((long) day) * 24 * 3600 * 1000);
		return c.getTime();
	}
	/* 兩個日期相減 */
	public static int diffDate(Date date,Date date1){
		return (int)((getMinute(date)-getMillis(date1))/(24 * 3600 * 1000));
	}
}

簡單測試

package com.cloud.test;

import java.util.Date;
import com.cloud.util.DateUtil;
public class TestDateUtil {
	public static void main(String[] args) {

		boolean flag = DateUtil.idDate("2014-05-17");
		System.out.println(flag);
		Date date = DateUtil.parseDate("2016/11/12");
		System.out.println(date.toString());
		String time = DateUtil.getTime(new Date());
		System.out.println(time);
	}
}

相關推薦

Java系統時間封裝處理

package com.cloud.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import

J2EE---SSH整合環境下對java和oracle時間處理(系統時間)

處理java和資料庫時間資料的辦法 在程式設計中,我們經常被java和資料庫(mysql,oracle等)的時間格式所困擾,以下給出較為合理的解決方法: 注:示例程式碼建立在SSH整合環境下,若程式碼

js時間處理

頁面 http time .net ref 字符 sdn rip span 轉自 : http://blog.csdn.net/xichenguan/article/details/45512541 //將格林時間轉換成字符串格式的,用於顯示帶頁面 time : 格林時間

Java系統當前時間獲取及格式化

以前獲取系統當前時間都傻乎乎的用Date date = new Date();現在又遇到了,思考了一下這是一種很糟糕的做法,勢必每次用到都要例項化一個物件。那麼可否用其他的代替呢?當然有,用System.currentTimeMillis()下面做個格式化的示例: new Simp

java專案的異常處理

java專案中的常用的異常處理情況 1)為可恢復的錯誤使用檢查型異常,為程式設計錯誤使用非檢查型錯誤。   選擇檢查型還是非檢查型異常,對於Java程式設計人員來說,總是讓人感到困惑。檢查型異常保證你對錯誤條件提供異常處理程式碼,這是一種從語言到強制你編'寫健壯的程式碼的一種方式,但同時會引入大量

Java程式設計關於異常處理的10個要點

Java程式設計中關於異常處理的10個要點 如果是可恢復錯誤,使用檢查型異常;如果是程式設計錯誤,使用非檢查型異常。許多Java程式設計人員都很苦惱,到底是該選擇檢查型異常還是非檢查型異常。檢查型異常是一種從語言到強制你編寫程式碼的一種方式,可以保證你對錯誤條件提供異常處理程式碼,但同時也會引入大量雜

基於spring框架的java開發的異常處理

在springmvc框架的中異常處理的方式有兩種: 1,在控制器中使用@ExceptionHandler(xxxException.class)註解修飾一個方法,該註解能夠處理通一個控制器類中的丟擲的xxxExcepiton異常。 使用控制器通知註解@ControllerAdvice

Java 程式設計關於異常處理的10個最佳實踐

        異常處理是Java 開發中的一個重要部分。它是關乎每個應用的一個非功能性需求,是為了處理任何錯誤狀況,比如資源不可訪問,非法輸入,空輸入等等。Java提供了幾個異常處理特性,以try,catch 和 finally 關鍵字的形式內建於語言自

Java學習——private實現封裝處理

Java封裝處理(private封裝) 所謂封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。簡而言之就是,內部操作對外部而言不可見(保護性) 。 封裝是面向物件裡最複雜的概念,使用private關鍵字實現

汽車輔助駕駛系統的影象處理演算法

http://www.szaeia.com/NewsShow/2cf277eb-3a8e-4e6d-a7b7-03658f3eb5c6.htm 影像演算法瓶頸突破 汽車ADAS再進化 近年來,世界各國的交通主管單位皆大力倡導「防禦駕駛」,所謂防禦駕駛是一種預測危機並協助

Java語言的異常處理機制

Java中有一個Throwable的類,它有兩個子類,一個是Error類,另一個是Exception類。對於錯誤而言,是很難解決的,比如記憶體溢位等,不能夠通過異常處理來解決;異常是程式中發生的不正常事件流,比如10除以0, 檔案不存在等,需要程式設計

java字串Emoji表情處理

在爬蟲獲取字串內容時,遇到內容中有手機表情,存入資料庫是報錯!網上找了半天,發現好多人不去實驗一下就複製別人的程式碼網上發,然後導致我拿來用直接不行。最終找到一個可以行辦法,在此總結一下: 方法主要有兩個: 第一,修改資料庫字符集: 這種方法需

在Android系統使用WebViewClient處理跳轉URL的方法

使用WebViewClient 使用WebViewClinet主要是繼承WebViewClient父類,根據需要重寫其中的方法,並在WebView中進行配置,示例程式碼如下: ? 1 2 3 4 5

java時間處理

ins hang 獲取 span cep color rac getc pan import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; i

Java 8如何處理日期和時間

工廠方法 相同 例如 屬性。 ant arch java 去掉 靜態常量 常有人問我學習一個新庫的最好方式是什麽?我的答案是在實際項目中使用它。項目中有很多真正的需求驅使開發者去發掘並學習新庫。簡單得說就是任務驅動學習探 索。這對Java 8新日期時間API也不例外。我創建

20 個案例教你在 Java 8 如何處理日期和時間?

靜態方法 catch 完全 是把 AD 時間 如何判斷 before .com 前言 前面一篇文章寫了《SimpleDateFormat 如何安全的使用?》, 裏面介紹了 SimpleDateFormat 如何處理日期/時間,以及如何保證線程安全,及其介紹了在 Java

java的專題之異常處理——將異常處理運用在用戶管理系統(很重要)

ava 例子 AS 異常處理 構造方法 str run 用戶 per 如何讓我們的異常處理變得足夠靈活—— 我們可以自己創建一個異常類(所有異常的通用操作) 在用戶管理系統中具體操作如下: 1、創建一個UserException的類 2、找到Superclass,點擊Bro

Java 時間處理 System.currentTimeMillis()

void ring row mem long long -m throws mes sim import org.testng.annotations.Test;import java.text.ParseException;import java.text.SimpleD

JAVA獲取系統當前時間

1.通過Util包中的Date獲取 Date date = new Date(); SimpleDateFormat dateFormat= new SimpleDateFormat(“yyyy-MM-dd :hh:mm:ss”); System.out.

分享java程式設計一個小程式:獲取當前系統日期和時間在小程式顯示出來

特別注意月份是從0開始而不是從1開始,所以需要在月份上加1import java.applet.Applet; import java.awt.TextArea; import java.util.C