**
* <p>Title: 時間格式轉化與計算</p>
*/
package web.com;
import java.util.Calendar;
import java.util.Date;
import java.text.*;
public class DateTime {
public DateTime() {
}
/**
* 取得系統當前時間
* @return String yyyy-mm-dd
*/
public String getCurrentDate() {
Calendar rightNow = Calendar.getInstance();
int year = rightNow.get(rightNow.YEAR);
int month = rightNow.get(rightNow.MONTH) + 1;
int day = rightNow.get(rightNow.DATE);
return year + "-" + month + "-" + day;
}
/**
* 取得系統當前時間
* @return String yyyy年mm月dd日
*/
public String getCurrentDate1() {
Calendar rightNow = Calendar.getInstance();
int year = rightNow.get(rightNow.YEAR);
int month = rightNow.get(rightNow.MONTH) + 1;
int day = rightNow.get(rightNow.DATE);
return year + "年" + month + "月" + day + "日";
}
/**
* 取得系統當前時間
* @return String yyyymmdd
*/
public String getCurrentDate2() {
Calendar rightNow = Calendar.getInstance();
int year = rightNow.get(rightNow.YEAR);
int month = rightNow.get(rightNow.MONTH) + 1;
int day = rightNow.get(rightNow.DATE);
return year + "" + month + "" + day;
}
/**
* 取得系統當前時間
* @return String yyyy-mm
*/
public String getCurrentDate3() {
Calendar rightNow = Calendar.getInstance();
int year = rightNow.get(rightNow.YEAR);
int month = rightNow.get(rightNow.MONTH) + 1;
//int day = rightNow.get(rightNow.DATE);
return year + "-" + month;
}
/**
* 取得系統當前時間
* @return String yyyyMMddhhmmss
*/
public String getCurrentDate4() {
Calendar c = Calendar.getInstance();
c.add(c.SECOND, 0);
return "" + c.get(c.YEAR) + "" + (c.get(c.MONTH) + 1) + "" + c.get(c.DATE)+""+c.get(c.HOUR_OF_DAY)+""+c.get(c.MINUTE)+""+c.get(c.SECOND);
}
/**
* 取得系統當前時間
* @return String yyyy-MM-dd hh:mm:ss
*/
/* public String getCurrentDate5() {
SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
java.util.Date date = new java.util.Date();
String time = simpleDateFormat.format(date);
return time;
}
*/
/**
* 取得系統當前時間
* @return String yyyy-MM-dd hh:mm:ss
*/
public String getCurrentDate5(){
Calendar c = Calendar.getInstance();
c.add(c.SECOND, 0);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE)+" "+c.get(c.HOUR_OF_DAY)+":"+c.get(c.MINUTE)+":"+c.get(c.SECOND);
}
/**
* 取得系統當前時間 常用于訂單號
* @return String yyyyMMddhhmmss
*/
public String getCurrentDate6() {
Calendar c = Calendar.getInstance();
c.add(c.SECOND, 0);
String year=c.get(c.YEAR)+"";
return "" + year.subSequence(2,year.length())+ "" + (c.get(c.MONTH) + 1) + "" + c.get(c.DATE)+"-"+c.get(c.HOUR_OF_DAY)+""+c.get(c.MINUTE)+""+c.get(c.SECOND)+"-"+c.get(c.MILLISECOND);
}
/**
* 取得系統當前時間前n個月的相對應的一天
* @param n int
* @return String yyyy-mm-dd
*/
public String getNMonthBeforeCurrentDay(int n) {
Calendar c = Calendar.getInstance();
c.add(c.MONTH, -n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
/**
* 取得系統當前時間后n個月的相對應的一天
* @param n int
* @return String yyyy-mm-dd
*/
public String getNMonthAfterCurrentDay(int n) {
Calendar c = Calendar.getInstance();
c.add(c.MONTH, n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
/**
* 取得系統當前時間前n天
* @param n int
* @return String yyyy-mm-dd
*/
public String getNDayBeforeCurrentDate(int n) {
Calendar c = Calendar.getInstance();
c.add(c.DAY_OF_MONTH, -n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
/**
* 取得系統當前時間后n天
* @param n int
* @return String yyyy-mm-dd
*/
public String getNDayAfterCurrentDate(int n) {
Calendar c = Calendar.getInstance();
c.add(c.DAY_OF_MONTH, n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
//---------------------------------------------------------------------
//取過去一個時間對應的系統當年的一天
public String getCurrentDateAfterPastDate(String sPastDate) {
if (sPastDate != null && !sPastDate.equals("")) {
Date date = switchStringToDate(sPastDate);
Calendar c = Calendar.getInstance();
c.setTime(date);
int iPastYear = c.get(c.YEAR);
Calendar c1 = Calendar.getInstance();
int iCurrentYear = c1.get(c1.YEAR);
c.add(c.YEAR, iCurrentYear - iPastYear);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" +
c.get(c.DATE);
}
else {
return null;
}
}
/**
* 將一個日期字符串轉化成日期
* @param sDate String
* @return Date yyyy-mm-dd
*/
public Date switchStringToDate(String sDate) {
Date date = null;
try {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
date = df.parse(sDate);
}
catch (Exception e) {
System.out.println("日期轉換失敗:" + e.getMessage());
}
return date;
}
/**
* 輸入兩個字符串型的日期,比較兩者的大小
* @param fromDate String
* @param toDate String
* @return boolean before為true
*/
public boolean compareTwoDateBigOrSmall(String fromDate, String toDate) {
Date dateFrom = this.switchStringToDate(fromDate);
Date dateTo = this.switchStringToDate(toDate);
if (dateFrom.before(dateTo)) {
return true;
}
else {
return false;
}
}
/**
* 將一個日期字符串轉化成Calendar
* @param sDate String
* @return Calendar
*/
public Calendar switchStringToCalendar(String sDate) {
Date date = switchStringToDate(sDate);
Calendar c = Calendar.getInstance();
c.setTime(date);
return c;
}
/**
* 將一個日期轉化成Calendar
* @param date Date
* @return Calendar
*/
public Calendar switchStringToCalendar(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
return c;
}
public String string2Date(String dateString)
throws java.lang.Exception {
/*DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util類型
//java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql類型
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp類型
*/
SimpleDateFormat newk = new SimpleDateFormat ("yyyy.MM.dd hh:mm:ss");
SimpleDateFormat old = new SimpleDateFormat("MMM dd hh:mm:ss yyyy");
String strDate = "Mar 22 00:42:00 2002";
Date d = old.parse(strDate);
System.out.println(newk.format(d));
return newk.format(d);
}
/**
* 取得某個時間前n個月的相對應的一天
* @param sDate String
* @param n int
* @return String yyyy-mm-dd
*/
public String getNMonthBeforeOneDay(String sDate, int n) {
Calendar c = switchStringToCalendar(sDate);
c.add(c.MONTH, -n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
//取得某個時間后n個月的相對應的一天
public String getNMonthAfterOneDay(String sDate, int n) {
Calendar c = switchStringToCalendar(sDate);
c.add(c.MONTH, n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
//取得某個時間前n天,格式為yyyy-mm-dd
public String getNDayBeforeOneDate(String sDate, int n) {
Calendar c = switchStringToCalendar(sDate);
c.add(c.DAY_OF_MONTH, -n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
//取得某個時間后n天,格式為yyyy-mm-dd
public String getNDayAfterOneDate(String sDate, int n) {
Calendar c = switchStringToCalendar(sDate);
c.add(c.DAY_OF_MONTH, n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
//判斷系統當前時間是不是潤年
public boolean isRunNian() {
java.util.Calendar rightNow = java.util.Calendar.getInstance();
int year = rightNow.get(rightNow.YEAR);
if (0 == year % 4 && (year % 100 != 0 || year % 400 == 0)) {
return true;
}
else {
return false;
}
}
public static void main(String args[]) {
DateTime a = new DateTime();
try{
System.out.println(a.getCurrentDate6());
System.out.println(a.getCurrentDate6());
}catch(Exception e){System.err.println();}
}
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
27 | 28 | 29 | 30 | 1 | 2 | 3 | |||
4 | 5 | 6 | 7 | 8 | 9 | 10 | |||
11 | 12 | 13 | 14 | 15 | 16 | 17 | |||
18 | 19 | 20 | 21 | 22 | 23 | 24 | |||
25 | 26 | 27 | 28 | 29 | 30 | 31 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 |
專 注 Java 技 術 的 開 發... ...
享 受 Java 咖 啡 的 美 味... ...
擁 有 Sun 一 般 的 人 生
常用鏈接
留言簿(1)
隨筆檔案(23)
- 2007年6月 (1)
- 2006年9月 (1)
- 2006年8月 (2)
- 2006年5月 (1)
- 2006年3月 (4)
- 2006年1月 (4)
- 2005年12月 (5)
- 2005年11月 (2)
- 2005年10月 (1)
- 2005年9月 (1)
- 2005年8月 (1)
文章檔案(1)
Java學習資源
搜索
最新評論

- 1.?re: 一段判斷日期時間是否有效的JavaScript
- 評論內容較長,點擊標題查看
- --時光飛啊