如果想要取得系統(tǒng)的時(shí)間,可以使用System.currentTimeMillis()方法,例如:
- DateDemo.java
public class DateDemo {
????public static void main(String[]
args) {
????????System.out.println(System.currentTimeMillis());
????}
}
執(zhí)行結(jié)果會(huì)顯示從
- DateDemo.java
import java.util.Date;
public class DateDemo {
????public static void main(String[]
args) {
????????Date date = new Date();
????????
????????System.out.println(date.toString());
????????System.out.println(date.getTime());
????}
}
執(zhí)行的結(jié)果如下:
Fri May 06 10:31:13 GMT+08:00 2005 |
當(dāng)您生成Date對(duì)象時(shí),實(shí)際上它會(huì)使用System.currentTimeMillis()來(lái)取得系統(tǒng)時(shí)間,而您使用
toString()方法時(shí),會(huì)將取得的
如果您想要對(duì)日期時(shí)間作格式設(shè)定,則可以使用DateFormat來(lái)作格式化,先來(lái)看看它的子類SimpleDateFormat如何使用:
- DateDemo.java
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateDemo {
????public static void main(String[]
args) {
????????Date date = new Date();
????????DateFormat dateFormat =
????????????new
SimpleDateFormat("EE-MM-dd-yyyy");
????????
????????System.out.println(dateFormat.format(date));
????}
}
執(zhí)行結(jié)果:
星期 |
DateFormat會(huì)依計(jì)算機(jī)上的區(qū)域設(shè)定顯示時(shí)間格式,EE表示星期,MM表示月份、dd表示日期,而yyyy是公元,每個(gè)字符的設(shè)定都各有其意義,您
可以參考 SimpleDateFormat 的API說(shuō)明了解每個(gè)字符設(shè)定的意義。
您也可以直接從DateFormat指定格式生成DateFormat的實(shí)例,例如:
- DateDemo.java
import java.text.DateFormat;
import java.util.Date;
public class DateDemo {
????public static void main(String[]
args) {
????????Date date = new Date();
????????DateFormat shortFormat =
????????????DateFormat.getDateTimeInstance(
????????????????DateFormat.SHORT,
DateFormat.SHORT);
????????DateFormat mediumFormat =
????????????DateFormat.getDateTimeInstance(
????????????????DateFormat.MEDIUM,
DateFormat.MEDIUM);
????????DateFormat longFormat =
????????????DateFormat.getDateTimeInstance(
????????????????DateFormat.LONG, DateFormat.LONG);
????????DateFormat fullFormat =
????????????DateFormat.getDateTimeInstance(
????????????????DateFormat.FULL,
DateFormat.FULL);
????????System.out.println(shortFormat.format(date));
????????System.out.println(mediumFormat.format(date));
????????System.out.println(longFormat.format(date));
????????System.out.println(fullFormat.format(date));
????}
}
在使用getDateTimeInstance()取得DateFormat實(shí)例時(shí),可以指定的參數(shù)是日期格式與時(shí)間格式,以上所指定的格式依訊息詳細(xì)度 區(qū)分,執(zhí)行結(jié)果如下:
您也可以使用getDateInstance()取得DateFormat實(shí) 例,并同時(shí)指定日期的區(qū)域顯示方式,例如:
- DateDemo.java????
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
public class DateDemo {
????public static void main(String[]
args) {
????????Date date = new Date();
????????Locale locale = new
Locale("en", "US");
????????DateFormat shortFormat =
????????????DateFormat.getDateInstance(
????????????????DateFormat.SHORT,
locale);
????????DateFormat mediumFormat =
????????????DateFormat.getDateInstance(
????????????????DateFormat.MEDIUM,
locale);
????????DateFormat longFormat =
????????????DateFormat.getDateInstance(
????????????????DateFormat.LONG, locale);
????????DateFormat fullFormat =
????????????DateFormat.getDateInstance(
????????????????DateFormat.FULL, locale);
????????System.out.println(shortFormat.format(date));
????????System.out.println(mediumFormat.format(date));
????????System.out.println(longFormat.format(date));
????????System.out.println(fullFormat.format(date));
????}
}
這邊指定了美國(guó)的時(shí)間顯示方式,執(zhí)行結(jié)果如下:
|
-------------------------------------------------------------------------------------------------
1. 怎樣計(jì)算兩個(gè)時(shí)間之間的間隔?
間隔=Date1.getTime()-Date2.getTime();得出來(lái)的是毫秒數(shù).
除1000是秒,再除60是分,再除60是小時(shí)..............................
記住java標(biāo)準(zhǔn)庫(kù)中所有時(shí)間類都以此為基礎(chǔ)轉(zhuǎn)化的,只是他寫好了一些
轉(zhuǎn)化的方法給你用而已.但都離不開(kāi)這個(gè)毫秒數(shù)為基礎(chǔ).
2. t=Calendar.getInstance();m=t.get(t.MONTH)+1;這里為什么要加一?
在java語(yǔ)言里,date的month的取值范圍是:0~11,與人們的自然表達(dá)上相差1。
3. 系統(tǒng)時(shí)間與當(dāng)前日期的區(qū)別?
系統(tǒng)時(shí)間確切的說(shuō)應(yīng)該是
System.currentTimeMillis();
new Date()是當(dāng)前日期,雖然它getTime();和System.currentTimeMillis();
一樣,但System.currentTimeMillis();
4. 如何計(jì)算兩個(gè)日期的天數(shù)差值?
long beginTime = beginDate.getTime();
long endTime2 = endDate.getTime();
long betweenDays = (long)((endTime - beginTime) / (1000 * 60 * 60 *24) + 0.5);
5. 如何比較日期時(shí)間大小?
第一種方法:
use Calendar object to compare
java.util.Calendar class can be used to compare date. In order to do this,
you guy should parse that string into int year, month, day and construct a
Calendar object, and then do comparison.
Below is a sample
StringTokenizer token = new StringTokenizer(your string,"-");
int year = Integer.parseInt(token.nextToken());
int month = Integer.parseInt(token.nextToken());
int day = Integer.parseInt(token.nextToken());
Calendar date = Calendar.getInstance();
date.set(year,month,day);
Calendar today = Calendar.getInstacne();
if(date.after(today)){
//......
}
第二種方法
Date nowDate=new Date();//當(dāng)前時(shí)間\r
long nowTime=nowDate.getTime;
long lastTime=userTime.longValue();//以前的時(shí)間\r
long time=nowTime-lastTime;//時(shí)間相減比較。
if(time>(long)60000)//1分鐘{}
另外可用以下參考
用時(shí)間戳,Date.getTime()可以把當(dāng)前時(shí)間改成時(shí)間戳,
用CompareTo();
用before(),after(),equals();
6. 格式化日期的問(wèn)題\r
目的:
第一次求日期
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd");
String riqi=formatter.format(currentTime_1);
第二次求時(shí)間\r
java.text.DateFormat format1 = new java.text.SimpleDateFormat("hhmmss");
java.util.Date currentTime_2 = new java.util.Date();
String shijian=format1.format(currentTime_2);
得到的結(jié)果是
2002-02-19和115324(11點(diǎn)53分24秒)
實(shí)現(xiàn):
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd-H-mm-ss");
java.util.Date currentTime_1 = new java.util.Date();
String str_date = formatter.format(currentTime_1);
StringTokenizer token = new StringTokenizer(str_date,"-");
String year = token.nextToken();
String month= token.nextToken();
String day = token.nextToken();
String hh = token.nextToken();
String mm = token.nextToken();
String ss = token.nextToken();
String riqi=year+"年\\"+month+"月"+day+"日"+" "+hh+"點(diǎn)\\"+mm+"分"+ss+"秒\\";
String newdir=year+month+day;
String wenjian = hh+mm+ss;
7. 怎么得到一個(gè)月的天數(shù)?
java.util.Calendar date = java.util.Calendar.getInstance();
System.out.println(date.getActualMaximum(date.DAY_OF_MONTH));
------------------------------------------------------------------------------------------------
?
取得指定月份的第一天與取得指定月份的最后一天??
?????? /**??
???????? *??取得指定月份的第一天??
???????? *??
???????? *??@param??strdate??String??
???????? *??@return??String??
???????? */??
?????? public??String??getMonthBegin(String??strdate)??
?????? {??
?????????????? java.util.Date??date??=??parseFormatDate(strdate);??
?????????????? return??formatDateByFormat(date,"yyyy-MM")??+??"-01";??
?????? }??
?????? /**??
???????? *??取得指定月份的最后一天??
???????? *??
???????? *??@param??strdate??String??
???????? *??@return??String??
???????? */??
?????? public??String??getMonthEnd(String??strdate)??
?????? {??
?????????????? java.util.Date??date??=??parseFormatDate(getMonthBegin(strdate));??
?????????????? Calendar??calendar??=??Calendar.getInstance();??
?????????????? calendar.setTime(date);??
?????????????? calendar.add(Calendar.MONTH,1);??
?????????????? calendar.add(Calendar.DAY_OF_YEAR,??-1);??
?????????????? return??formatDate(calendar.getTime());??
?????? }??
?????? /**??
???????? *??常用的格式化日期??
???????? *??
???????? *??@param??date??Date??
???????? *??@return??String??
???????? */??
?????? public??String??formatDate(java.util.Date??date)??
?????? {??
?????????????? return??formatDateByFormat(date,"yyyy-MM-dd");??
?????? }??
?????? /**??
???????? *??以指定的格式來(lái)格式化日期??
???????? *??
???????? *??@param??date??Date??
???????? *??@param??format??String??
???????? *??@return??String??
???????? */??
?????? public??String??formatDateByFormat(java.util.Date??date,String??format)??
?????? {??
?????????????? String??result??=??"";??
?????????????? if(date??!=??null)??
?????????????? {??
?????????????????????? try??
?????????????????????? {??
?????????????????????????????? SimpleDateFormat??sdf??=??new??SimpleDateFormat(format);??
?????????????????????????????? result??=??sdf.format(date);??
?????????????????????? }??
?????????????????????? catch(Exception??ex)??
?????????????????????? {??
?????????????????????????????? LOGGER.info("date:"??+??date);??
?????????????????????????????? ex.printStackTrace();??
?????????????????????? }??
?????????????? }??
?????????????? return??result;??
?????? }??
---------------------------------------------------------------??
package??com.app.util;??
/**??
*??日期操作??
*????
*??@author??xxx??
*??@version??2.0??jdk1.4.0??tomcat5.1.0??*??Updated??Date:2005/03/10??
*/??
public??class??DateUtil??{??
?????????? /**??
???????????? *??格式化日期??
???????????? *????
???????????? *??@param??dateStr??
???????????? *????????????????????????字符型日期??
???????????? *??@param??format??
???????????? *????????????????????????格式??
???????????? *??@return??返回日期??
???????????? */??
?????????? public??static??java.util.Date??parseDate(String??dateStr,??String??format)??{??
?????????????????????? java.util.Date??date??=??null;??
?????????????????????? try??{??
?????????????????????????????????? java.text.DateFormat??df??=??new??java.text.SimpleDateFormat(format);??
?????????????????????????????????? String??dt=Normal.parse(dateStr).replaceAll(??
?????????????????????????????????????????????????????????? "-",??"/");??
?????????????????????????????????? if((!dt.equals(""))&&(dt.length()<format.length())){??
?????????????????????????????????????????????? dt+=format.substring(dt.length()).replaceAll("[YyMmDdHhSs]","0");??
?????????????????????????????????? }??
?????????????????????????????????? date??=??(java.util.Date)??df.parse(dt);??
?????????????????????? }??catch??(Exception??e)??{??
?????????????????????? }??
?????????????????????? return??date;??
?????????? }??
?????????? public??static??java.util.Date??parseDate(String??dateStr)??{??
?????????????????????? return??parseDate(dateStr,??"yyyy/MM/dd");??
?????????? }??
?????????? public??static??java.util.Date??parseDate(java.sql.Date??date)??{??
?????????????????????? return??date;??
?????????? }??
????????????
?????????? public??static??java.sql.Date??parseSqlDate(java.util.Date??date)??{??
?????????????????????? if??(date??!=??null)??
?????????????????????????????????? return??new??java.sql.Date(date.getTime());??
?????????????????????? else??
?????????????????????????????????? return??null;??
?????????? }??
?????????? public??static??java.sql.Date??parseSqlDate(String??dateStr,??String??format)??{??
?????????????????????? java.util.Date??date??=??parseDate(dateStr,??format);??
?????????????????????? return??parseSqlDate(date);??
?????????? }??
?????????? public??static??java.sql.Date??parseSqlDate(String??dateStr)??{??
?????????????????????? return??parseSqlDate(dateStr,??"yyyy/MM/dd");??
?????????? }??
????????????
?????????? public??static??java.sql.Timestamp??parseTimestamp(String??dateStr,??
?????????????????????????????????? String??format)??{??
?????????????????????? java.util.Date??date??=??parseDate(dateStr,??format);??
?????????????????????? if??(date??!=??null)??{??
?????????????????????????????????? long??t??=??date.getTime();??
?????????????????????????????????? return??new??java.sql.Timestamp(t);??
?????????????????????? }??else??
?????????????????????????????????? return??null;??
?????????? }??
?????????? public??static??java.sql.Timestamp??parseTimestamp(String??dateStr)??{??
?????????????????????? return??parseTimestamp(dateStr,??"yyyy/MM/dd??HH:mm:ss");??
?????????? }??
?????????? /**??
???????????? *??格式化輸出日期??
???????????? *????
???????????? *??@param??date??
???????????? *????????????????????????日期??
???????????? *??@param??format??
???????????? *????????????????????????格式??
???????????? *??@return??返回字符型日期??
???????????? */??
?????????? public??static??String??format(java.util.Date??date,??String??format)??{??
?????????????????????? String??result??=??"";??
?????????????????????? try??{??
?????????????????????????????????? if??(date??!=??null)??{??
?????????????????????????????????????????????? java.text.DateFormat??df??=??new??java.text.SimpleDateFormat(format);??
?????????????????????????????????????????????? result??=??df.format(date);??
?????????????????????????????????? }??
?????????????????????? }??catch??(Exception??e)??{??
?????????????????????? }??
?????????????????????? return??result;??
?????????? }??
?????????? public??static??String??format(java.util.Date??date)??{??
?????????????????????? return??format(date,??"yyyy/MM/dd");??
?????????? }??
?????????? /**??
???????????? *??返回年份??
???????????? *????
???????????? *??@param??date??
???????????? *????????????????????????日期??
???????????? *??@return??返回年份??
???????????? */??
?????????? public??static??int??getYear(java.util.Date??date)??{??
?????????????????????? java.util.Calendar??c??=??java.util.Calendar.getInstance();??
?????????????????????? c.setTime(date);??
?????????????????????? return??c.get(java.util.Calendar.YEAR);??
?????????? }??
?????????? /**??
???????????? *??返回月份??
???????????? *????
???????????? *??@param??date??
???????????? *????????????????????????日期??
???????????? *??@return??返回月份??
???????????? */??
?????????? public??static??int??getMonth(java.util.Date??date)??{??
?????????????????????? java.util.Calendar??c??=??java.util.Calendar.getInstance();??
?????????????????????? c.setTime(date);??
?????????????????????? return??c.get(java.util.Calendar.MONTH)??+??1;??
?????????? }??
?????????? /**??
???????????? *??返回日份??
???????????? *????
???????????? *??@param??date??
???????????? *????????????????????????日期??
???????????? *??@return??返回日份??
???????????? */??
?????????? public??static??int??getDay(java.util.Date??date)??{??
?????????????????????? java.util.Calendar??c??=??java.util.Calendar.getInstance();??
?????????????????????? c.setTime(date);??
?????????????????????? return??c.get(java.util.Calendar.DAY_OF_MONTH);??
?????????? }??
?????????? /**??
???????????? *??返回小時(shí)??
???????????? *????
???????????? *??@param??date??
???????????? *????????????????????????日期??
???????????? *??@return??返回小時(shí)??
???????????? */??
?????????? public??static??int??getHour(java.util.Date??date)??{??
?????????????????????? java.util.Calendar??c??=??java.util.Calendar.getInstance();??
?????????????????????? c.setTime(date);??
?????????????????????? return??c.get(java.util.Calendar.HOUR_OF_DAY);??
?????????? }??
?????????? /**??
???????????? *??返回分鐘??
???????????? *????
???????????? *??@param??date??
???????????? *????????????????????????日期??
???????????? *??@return??返回分鐘??
???????????? */??
?????????? public??static??int??getMinute(java.util.Date??date)??{??
?????????????????????? java.util.Calendar??c??=??java.util.Calendar.getInstance();??
?????????????????????? c.setTime(date);??
?????????????????????? return??c.get(java.util.Calendar.MINUTE);??
?????????? }??
?????????? /**??
???????????? *??返回秒鐘??
???????????? *????
???????????? *??@param??date??
???????????? *????????????????????????日期??
???????????? *??@return??返回秒鐘??
???????????? */??
?????????? public??static??int??getSecond(java.util.Date??date)??{??
?????????????????????? java.util.Calendar??c??=??java.util.Calendar.getInstance();??
?????????????????????? c.setTime(date);??
?????????????????????? return??c.get(java.util.Calendar.SECOND);??
?????????? }??
?????????? /**??
???????????? *??返回毫秒??
???????????? *????
???????????? *??@param??date??
???????????? *????????????????????????日期??
???????????? *??@return??返回毫秒??
???????????? */??
?????????? public??static??long??getMillis(java.util.Date??date)??{??
?????????????????????? java.util.Calendar??c??=??java.util.Calendar.getInstance();??
?????????????????????? c.setTime(date);??
?????????????????????? return??c.getTimeInMillis();??
?????????? }??
?????????? /**??
???????????? *??返回字符型日期??
???????????? *????
???????????? *??@param??date??
???????????? *????????????????????????日期??
???????????? *??@return??返回字符型日期??
???????????? */??
?????????? public??static??String??getDate(java.util.Date??date)??{??
?????????????????????? return??format(date,??"yyyy/MM/dd");??
?????????? }??
?????????? /**??
???????????? *??返回字符型時(shí)間??
???????????? *????
???????????? *??@param??date??
???????????? *????????????????????????日期??
???????????? *??@return??返回字符型時(shí)間??
???????????? */??
?????????? public??static??String??getTime(java.util.Date??date)??{??
?????????????????????? return??format(date,??"HH:mm:ss");??
?????????? }??
?????????? /**??
???????????? *??返回字符型日期時(shí)間??
???????????? *????
???????????? *??@param??date??
???????????? *????????????????????????日期??
???????????? *??@return??返回字符型日期時(shí)間??
???????????? */??
?????????? public??static??String??getDateTime(java.util.Date??date)??{??
?????????????????????? return??format(date,??"yyyy/MM/dd??HH:mm:ss");??
?????????? }??
?????????? /**??
???????????? *??日期相加??
???????????? *????
???????????? *??@param??date??
???????????? *????????????????????????日期??
???????????? *??@param??day??
???????????? *????????????????????????天數(shù)??
???????????? *??@return??返回相加后的日期??
???????????? */??
?????????? public??static??java.util.Date??addDate(java.util.Date??date,??int??day)??{??
?????????????????????? java.util.Calendar??c??=??java.util.Calendar.getInstance();??
?????????????????????? c.setTimeInMillis(getMillis(date)??+??((long)??day)??*??24??*??3600??*??1000);??
?????????????????????? return??c.getTime();??
?????????? }??
?????????? /**??
???????????? *??日期相減??
???????????? *????
???????????? *??@param??date??
???????????? *????????????????????????日期??
???????????? *??@param??date1??
???????????? *????????????????????????日期??
???????????? *??@return??返回相減后的日期??
???????????? */??
?????????? public??static??int??diffDate(java.util.Date??date,??java.util.Date??date1)??{??
?????????????????????? return??(int)??((getMillis(date)??-??getMillis(date1))??/??(24??*??3600??*??1000));??
?????????? }??????????????
}??
------------------------------------------------------------------------------------------------------------------
來(lái)個(gè)簡(jiǎn)單點(diǎn)的,也許有點(diǎn)用??
Calendar??now??=??Calendar.getInstance();??
int??year??=??now.get(Calendar.YEAR);??
int??date??=??now.get(Calendar.DAY_OF_MONTH);??
int??month??=??now.get(Calendar.MONTH)??+??1;??
int??hour??=??now.get(Calendar.HOUR);??
int??min??=??now.get(Calendar.MINUTE);??
int??sec??=??now.get(Calendar.SECOND);??
轉(zhuǎn)自http://www.513pc.net/bbs/dispbbs.asp?boardid=4&id=239&star=1&page=1