锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
1.鑾峰彇褰撳墠鏃墮棿
2.鑾峰彇褰撳墠騫達紝鏈堬紝鏃ワ紝鏃訛紝鍒嗭紝縐?br />3.鑾峰彇鎸囧畾鏃ユ湡鐨勫勾錛屾湀錛屾棩錛屾椂錛屽垎錛岀
4.鑾峰彇涓や釜鏃ユ湡鐨勬椂闂村樊(鍖呮嫭騫存湀鏃ユ椂鍒嗙)
5.灝嗗瓧絎︾獪綾誨瀷杞垚java.util.date綾誨瀷
6.鎸囧畾鏃ユ湡娣誨姞鏃墮棿
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* @descriped a simple class for date
* @author Kohri
* @date 2012/4/22
* @version 1.0
*/
public class SimpleDate {
private static String defaultFormat = "yyyy-MM-dd HH:mm:ss";
private static SimpleDateFormat sf = null ;
private static Calendar cal = Calendar.getInstance();
private static Date date = null;
/**
* get current date time (default 'yyyy-MM-dd HH:mm:ss')
* @return string
*/
public static String getDateNow() {
sf = new SimpleDateFormat(defaultFormat);
String currentTime = "";
currentTime = sf.format(new Date());
return currentTime;
}
/**
* get year (default now)
* @return int
*/
public static int getYear(){
int currentYear = cal.get(Calendar.YEAR);
return currentYear;
}
/**
* get mon (default now)
* @return int
*/
public static int getMonth(){
int currentMonth = cal.get(Calendar.MONTH) + 1;
return currentMonth;
}
/**
* get day of month (default now)
* @return int
*/
public static int getDay(){
int currentDayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
return currentDayOfMonth;
}
/**
* get hours (default now)
* @return int
*/
public static int getHours(){
int currentHours = cal.get(Calendar.HOUR_OF_DAY);
return currentHours;
}
/**
* get minutes (default now)
* @return int
*/
public static int getMinutes(){
int currentMinute = cal.get(Calendar.MINUTE);
return currentMinute;
}
/**
* get seconds (default now)
* @return int
*/
public static int getSeconds(){
int currentSecond = cal.get(Calendar.SECOND);
return currentSecond;
}
/**
* string change to date
* @param strDate
* @param dateFormat
* @return date
*/
public static Date toDate(String strDate, String dateFormat){
if(strDate == null || strDate.length() == 0){
return null;
}
Date date = null;
DateFormat df = new SimpleDateFormat(dateFormat);
try {
date = df.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
/**
* Returns this Calendar's time value in milliseconds
* @param p_date
* @return long
*/
public static long getMillisOfDate(Date date) {
cal.setTime(date);
return cal.getTimeInMillis();
}
/**
* compare two date
* return the greater date
* if equals return null
* @param strStartDate
* @param strEndDate
* @return date
*/
public static Date getGreaterDate(String strStartDate, String strEndDate){
Date date = null;
Date startDate = toDate(strStartDate, "yyyy-MM-dd");
Date endDate = toDate(strEndDate, "yyyy-MM-dd");
long startTime = getMillisOfDate(startDate);
long endTime = getMillisOfDate(endDate);
if((startTime - endTime) > 0){
return startDate;
}else if((endTime - startTime) > 0){
return endDate;
}
return date;
}
/**
* get days between 2 different date
* @param strStartDate less date (yyyy-MM-dd)
* @param strEndDate greater date (yyyy-MM-dd)
* @return long
*/
public static long getDaysOftwoDiffDate(String strStartDate, String strEndDate){
Date startDate = toDate(strStartDate, "yyyy-MM-dd");
Date endDate = toDate(strEndDate, "yyyy-MM-dd");
long startTime = getMillisOfDate(startDate);
long endTime = getMillisOfDate(endDate);
long betweenDays = (long) ((endTime - startTime) / ( 1000 * 60 * 60 * 24 ));
return betweenDays;
}
/**
* get weeks between 2 different date
* @param strStartDate less date (yyyy-MM-dd)
* @param strEndDate greater date (yyyy-MM-dd)
* @return long
*/
public static long getWeeksOfTwoDiffDate(String strStartDate, String strEndDate){
return getDaysOftwoDiffDate(strStartDate, strEndDate) / 7;
}
/**
* get months between 2 different date
* @param strStartDate less date (yyyy-MM-dd)
* @param strEndDate greater date (yyyy-MM-dd)
* @return long
*/
public static long getMonthsOfTwoDiffDate(String strStartDate, String strEndDate){
return getDaysOftwoDiffDate(strStartDate, strEndDate) / 30;
}
/**
* get years between 2 different date
* @param strStartDate less date (yyyy-MM-dd)
* @param strEndDate greater date (yyyy-MM-dd)
* @return long
*/
public static long getYearsOfTwoDiffDate(String strStartDate, String strEndDate){
return getDaysOftwoDiffDate(strStartDate, strEndDate) / 365;
}
/**
* add date
* @param date
* @param count
* @param field Calendar.YEAR(MONTH..)
* @param format DateFormat(yyyy-MM-dd)
* @return string
*/
public static String addDate(Date date,int count,int field,String format){
cal.setTime(date);
int year = getYear();
int month = getMonth() - 1;
int day = getDay();
int hours = getHours();
int minutes = getMinutes();
int seconds = getSeconds();
Calendar calendar = new GregorianCalendar(year, month, day, hours, minutes, seconds);
calendar.add(field,count);
DateFormat df = new SimpleDateFormat(format);
String tmpDate = df.format(calendar.getTime());
if(date == null){
}
/**
* calendar settime
* @param date
*/
private static void setCalTime(Date date){
if(date != null){
cal.setTime(date);
}
}
//setter getter
public static String getDefaultFormat() {
return defaultFormat;
}
public static void setDefaultFormat(String defaultFormat) {
SimpleDate.defaultFormat = defaultFormat;
}
public static Date getDate() {
return date;
}
public static void setDate(Date date) {
SimpleDate.date = date;
setCalTime(date);
}
}
]]>
-------------------------------------------------------------------------------------------------------------------------------------------------------------
java鏃ユ湡澶勭悊鐩稿叧綾伙細
姣旇緝甯哥敤鐨勬槸java.util.date錛屽皢java.util.Date杞負java.sql.Date鐨勬椂鍊欙紝鏃ユ湡鏃跺垎縐掍細琚幓鎺夛紝澶卞幓綺懼害銆傝屼笖濡傛灉鐜板湪緲誨紑api鐪嬬湅灝卞彂瑙夎繖涓や釜綾誨ソ澶氭柟娉曞凡緇忚繃鏃訛紝鍑犺繎娌︿負搴熺墿銆?/p>
Timestamp鑳藉拰java.util.date鏃犳崯杞崲錛屼絾鏄湪涓浜涢瀹氫箟sql涓細甯稿父鍑洪棶棰樸?/p>
錛堜互涓婂嚭鑷?nbsp;click me錛?/p>
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Joda Time | Date4j |
---|---|
鎷ユ湁鐨勭被鐨勬暟閲? 140+ | 鎷ユ湁鐨勭被鐨勬暟閲?a style="color: #0b59b2; ">< 10 |
鍖呭惈鍙彉鍜屼笉鍙彉綾?/td> | 浠呭寘鍚笉鍙彉綾?/td> |
寮鴻皟閫熷害鍜屽姛鑳?/td> | 寮鴻皟綆鍗曞拰鏈夋晥 |
鏀寔鏍奸噷楂橀噷鍘嗭紙Gregorian錛夈?縐戞櫘鐗硅鏃ュ巻錛圕optic錛夈?浼婃柉鍏版暀鍘嗭紙Islamic錛夈佷經(jīng)鍘嗭紙Buddhist錛夌瓑絳?/td> | 鍙彁渚涘鏍奸噷楂橀噷鍘嗙殑鏀寔 |
鍙互瀹屽叏鍙栦唬JDK鏃ユ湡綾?/td> | 鍜孞DK鏃ユ湡綾婚厤鍚堜嬌鐢?/td> |
綺劇‘鍒版縐掔駭鎿嶄綔 | 鏀寔鍒扮撼縐掞紙鍗佷嚎鍒嗕箣涓縐掞級綰ф搷浣?/strong> |
淇浜嗗ぉ“婧㈠嚭”鐨勯棶棰?/td> | 澶?#8220;婧㈠嚭”鐨勯棶棰樺彲閰嶇疆 |
閽堝鐨勬槸閫氬父鎰忎箟鐨勬棩鏈熺淮鎶?/td> | 閫傜敤浜庨氳繃鏁版嵁搴撴潵緇存姢鐨勬棩鏈?/td> |
閲囩敤Apache 2.0鎺堟潈璁稿彲 | 閲囩敤BSD鎺堟潈璁稿彲 |
铏界劧涔嶄竴鐪婦ate4j鍙叿澶囦簡Joda涓竴閮ㄥ垎鐨勭壒鎬э紝浣嗗畠鏈変袱涓富瑕佺殑鐗圭偣鏄疛oda鎵涓嶅叿澶囩殑銆?/p>
棣栧厛錛孌ate4j鐨勫紑鍙戣?a target="_blank" style="color: #0b59b2; ">瀹gО綾誨簱涓嶅簲鑾悕鍏跺鍦板皢鏃ユ湡鎴柇銆侸oda鍙敮鎸佹縐掔駭鐨勭簿搴﹁屼笖鍦ㄥ皢鏉?a target="_blank" style="color: #0b59b2; ">鍙兘涔熶笉浼氭敼鍠?/a>銆備竴浜涙暟鎹簱涔熷凡緇忔湁浜嗘洿濂界殑瑙e喅鏂規(guī)銆傛瘮濡傛祦琛岀殑PostgreSQL鏁版嵁搴撳鏃墮棿鎴崇簿搴﹀氨宸茬粡鏀寔鍒?a target="_blank" style="color: #0b59b2; ">寰綰?/a>錛堢櫨涓囧垎涔嬩竴縐掞級銆侱ate4j鍙湪澶勭悊鏃ユ湡鏃跺綺懼害姣棤鎹熶激銆?/p>
絎簩涓壒寰佹槸鏃ユ湡“婧㈠嚭”鐨勯棶棰橈紝渚嬪鍚戞煇涓棩鏈熷鍔犱竴孌墊椂闂村悗錛屾棩鏈熻惤鍦ㄤ笅鏈堢殑鎯呭喌銆傛渶綆鍗曠殑渚嬪瓙灝辨槸鍦?鏈?1鏃ュ鍔犱竴涓湀鐨勮綆楋細
DateTime dt = new DateTime("2011-03-31");
DateTime result = dt.plusMonths(1); (鏈鏂扮増鏈鏂規(guī)硶搴旇宸茬粡琚垹闄わ紝鍙湁plus(...)涓巔lusDay())
System.out.println(result.toString());
褰撲嬌鐢↗oda Time鏃訛紝浼氳緭鍑?鏈?0鏃ワ紝浣嗚繖涔熻騫朵笉鏄綘鎯寵鐨勭粨鏋溿?/p>
閴翠簬榪欑涓嶇‘瀹氭э紝Date4j涓烘?zhèn)ㄦ彁渚涗?a target="_blank" style="color: #0b59b2; ">4縐嶉夋嫨錛?/p>
1. | 絎竴澶?/td> |
2. | 鏈鍚庝竴澶╋紙涓嶫oda Time鐩稿悓錛?/td> |
3. | 鏃ユ湡欏哄歡 |
4. | 鎶涘嚭寮傚父 |