如果想要取得系統的時間,可以使用System.currentTimeMillis()方法,例如:
public class DateDemo {
public static void main(String[]
args) {
System.out.println(System.currentTimeMillis());
}
}
執行結果會顯示從1970年1月1日開始到取得系統時間爲止所經過的毫秒數,例如1115346430703這個數字,但這樣的數字沒有人確切瞭解它的意 義是什麼,您可以使用Date類別來讓這個數字變的更有意義一些,例如:
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());
}
}
執行的結果如下:
Fri May 06 10:31:13 GMT+08:00 2005
1115346673531
當您生成Date對象時,實際上它會使用System.currentTimeMillis()來取得系統時間,而您使用
toString()方法時,會將取得的1970年1月1日至今的毫秒數轉爲dow mon dd hh:mm:ss zzz yyyy的格式,分別是:「星期 月 日 時:分:秒 公元」;使用Date的getTime()方法則可以取得毫秒數。
如果您想要對日期時間作格式設定,則可以使用DateFormat來作格式化,先來看看它的子類SimpleDateFormat如何使用:
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));
}
}
星期五-05-06-2005
DateFormat會依計算機上的區域設定顯示時間格式,EE表示星期,MM表示月份、dd表示日期,而yyyy是公元,每個字符的設定都各有其意義,您
可以參考 SimpleDateFormat 的API說明了解每個字符設定的意義。
您也可以直接從DateFormat指定格式生成DateFormat的實例,例如:
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實例時,可以指定的參數是日期格式與時間格式,以上所指定的格式依訊息詳細度 區分,執行結果如下:
2005/5/6 上午 10:45
2005/5/6 上午 10:45:25
2005年5月6日 上午10時45分25秒
2005年5月6日 星期五 上午10時45分25秒 GMT+08:00
您也可以使用getDateInstance()取得DateFormat實 例,並同時指定日期的區域顯示方式,例如:
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));
}
}
這邊指定了美國的時間顯示方式,執行結果如下:
5/6/05
May 6, 2005
May 6, 2005
Friday, May 6, 2005
-------------------------------------------------------------------------------------------------
1. 怎樣計算兩個時間之間的間隔?
間隔=Date1.getTime()-Date2.getTime();得出來的是毫秒數.
除1000是秒,再除60是分,再除60是小時..............................
記住java標準庫中所有時間類都以此爲基礎轉化的,只是他寫好了一些
轉化的方法給你用而已.但都離不開這個毫秒數爲基礎.
2. t=Calendar.getInstance();m=t.get(t.MONTH)+1;這裏爲什麼要加一?
在java語言裏,date的month的取值範圍是:0~11,與人們的自然表達上相差1。
3. 系統時間與當前日期的區別?
系統時間確切的說應該是
System.currentTimeMillis();
new Date()是當前日期,雖然它getTime();和System.currentTimeMillis();
一樣,但System.currentTimeMillis();
4. 如何計算兩個日期的天數差值?
long endTime2 = endDate.getTime();
long betweenDays = (long)((endTime - beginTime) / (1000 * 60 * 60 *24) + 0.5);
5. 如何比較日期時間大小?
第一種方法:
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.
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)){
//
}
第二種方法
long nowTime=nowDate.getTime;
long lastTime=userTime.longValue();//以前的時間/r
long time=nowTime-lastTime;//時間相減比較。
if(time>(long)60000)//1分鐘{}
另外可用以下參考
用時間戳,Date.getTime()可以把當前時間改成時間戳,
用CompareTo();
用before(),after(),equals();
6. 格式化日期的問題/r
目的:
第一次求日期
String riqi=formatter.format(currentTime_1);
第二次求時間/r
java.util.Date currentTime_2 = new java.util.Date();
String shijian=format1.format(currentTime_2);
得到的結果是
2002-02-19和115324(11點53分24秒)
實現:
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+"點//"+mm+"分"+ss+"秒//";
String newdir=year+month+day;
String wenjian = hh+mm+ss;
7. 怎麼得到一個月的天數?
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");
}
/** *//**
* 以指定的格式來格式化日期
*
* @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;
}
---------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------
來個簡單點的,也許有點用
/** *//**
* 日期操作
*
* @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);
}
/** *//**
* 返回小時
*
* @param date
* 日期
* @return 返回小時
*/
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");
}
/** *//**
* 返回字符型時間
*
* @param date
* 日期
* @return 返回字符型時間
*/
public static String getTime(java.util.Date date) {
return format(date, "HH:mm:ss");
}
/** *//**
* 返回字符型日期時間
*
* @param date
* 日期
* @return 返回字符型日期時間
*/
public static String getDateTime(java.util.Date date) {
return format(date, "yyyy/MM/dd HH:mm:ss");
}
/** *//**
* 日期相加
*
* @param date
* 日期
* @param day
* 天數
* @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));
}
}