⑴ java中Date的使用
java語言中的date類介紹及使用
在JDK1.0中,Date類是唯一的一個代表時間的類,但是由於Date類不便於實現國際化,所以從JDK1.1版本開始,推薦使用Calendar類進行時間和日期處理。這里簡單介紹一下Date類的使用。
1、使用Date類代表當前系統時間
Date d = new Date();
System.out.println(d);
使用Date類的默認構造方法創建出的對象就代表當前時間,由於Date類覆蓋了toString方法,所以可以直接輸出Date類型的對象,顯示的結果如下:
Sun Mar 08 16:35:58 CST 2009
在該格式中,Sun代表Sunday(周日),Mar代表March(三月),08代表8號,CST代表China Standard Time(中國標准時間,也就是北京時間(東八區))。
2、使用Date類代表指定的時間
Date d1 = new Date(2009-1900,3-1,9);
System.out.println(d1);
使用帶參數的構造方法,可以構造指定日期的Date類對象,Date類中年份的參數應該是實際需要代表的年份減去1900,實際需要代表的月份減去1以後的值。例如上面的示例代碼代表就是2009年3月9號。
實際代表具體的年月日時分秒的日期對象,和這個類似。
3、獲得Date對象中的信息
Date d2 = new Date();
//年份
int year = d2.getYear() + 1900;
//月份
int month = d2.getMonth() + 1;
//日期
int date = d2.getDate();
//小時
int hour = d2.getHours();
//分鍾
int minute = d2.getMinutes();
//秒
int second = d2.getSeconds();
//星期幾
int day = d2.getDay();
System.out.println("年份:" + year);
System.out.println("月份:" + month);
System.out.println("日期:" + date);
System.out.println("小時:" + hour);
System.out.println("分鍾:" + minute);
System.out.println("秒:" + second);
System.out.println("星期:" + day);
使用Date類中對應的get方法,可以獲得Date類對象中相關的信息,需要注意的是使用getYear獲得是Date對象中年份減去1900以後的值,所以需要顯示對應的年份則需要在返回值的基礎上加上1900,月份類似。在Date類中還提供了getDay方法,用於獲得Date對象代表的時間是星期幾,Date類規定周日是0,周一是1,周二是2,後續的依次類推。
4、Date對象和相對時間之間的互轉
Date d3 = new Date(2009-1900,3-1,10);
long time = 1290876532190L;
//將Date類的對象轉換為相對時間
long t = d3.getTime();
System.out.println(t);
//將相對時間轉換為Date類的對象
Date d4 = new Date(time);
System.out.println(d4);
使用Date對象中的getTime方法,可以將Date類的對象轉換為相對時間,使用Date類的構造方法,可以將相對時間轉換為Date類的對象。經過轉換以後,既方便了時間的計算,也使時間顯示比較直觀了。
⑵ 如何用java取得年,月,日,時,分,秒
這個問題可以用兩種方式得到:
方法一:在java中可以使用Date類直接獲得,但是這個方法過時了,不推薦使用。
方法二:使用 java.util.Calendar 類。
代碼例子:
//方法1:雖然還可以用,但是已經不建議使用,已經過時。
Datedate=newDate();
intold_y=date.getYear()+1900;//得到年份。因為得到的是1900年後至今過了多少年,所以要加1900
intold_m=date.getMonth()+1;//因為得到的結果是0~11,故而加一。
intold_d=date.getDate();//得到月份中今天的號數
System.out.println("現在是:"+old_y+"-"+old_m+"-"+old_d+"(使用過時方法)");//
//方法2:推薦使用
Calendarcalendar=Calendar.getInstance();
intnow_y=calendar.get(Calendar.YEAR);//得到年份
intnow_m=calendar.get(Calendar.MONTH)+1;//得到月份
intnow_d=calendar.get(Calendar.DATE);//得到月份中今天的號數
intnow_h=calendar.get(Calendar.HOUR_OF_DAY);//得到一天中現在的時間,24小時制
intnow_mm=calendar.get(Calendar.MINUTE);//得到分鍾數
intnow_s=calendar.get(Calendar.SECOND);//得到秒數
System.out.println("現在是:"+now_y+"-"+now_m+"-"+now_d+""+now_h+":"+now_mm+":"+now_s+"(使用推薦方法)");
結果:
現在是:2015-11-9(使用過時方法)
現在是:2015-11-9 18:7:42(使用推薦方法)
⑶ java中如何從日期類型中獲取月
//將yyyyMMdd轉為date
public static Date getCoreToEmsDateStr(String dateStr){
DateFormat format = new SimpleDateFormat("yyyyMMdd");
Date d = null;
try{
d = format.parse(dateStr);
}catch(ParseException e){
e.printStackTrace();
}
return d;
}
public static String getDateAfterDays(Timestamp s,int days){
Timestamp currTimestamp = s;
for (int i=0;i<days;i++){
currTimestamp = getNextDate(currTimestamp);
}
return getDateTimeStr(currTimestamp,"3");
}
public static Timestamp getNextDate(java.sql.Timestamp tsDate){
if(tsDate==null)
return null;
java.util.Calendar calendar = Calendar.getInstance();
calendar.setTime(tsDate);
return getDateTime(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH)+1,calendar.get(Calendar.DATE)+1,
calendar.get(Calendar.HOUR_OF_DAY),calendar.get(Calendar.MINUTE),calendar.get(Calendar.SECOND));
}
public static java.sql.Timestamp getDateTime(int year,int month,int day,int hour,int minute,int second){
java.sql.Timestamp ts = null;
java.util.Date dt = null;
java.util.Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(year,month-1,day,hour,minute,second);
dt = calendar.getTime();
ts = new java.sql.Timestamp(dt.getTime());
return ts;
}
/**
* 比較兩個時間是否相同
* @param tsBeginDate
* @param tsEndDate
* @param bool
* @return
*/
public static long getDateInterval(Timestamp tsBeginDate,Timestamp tsEndDate,boolean bool){
long lDays = 0;
if(bool){
tsBeginDate = Common.getDateTime(Common.getDateString(tsBeginDate),bool);
}
if(tsBeginDate!=null&&tsEndDate!=null){
Log4j.info("tsEndDate.getTime ()===="+tsEndDate);
Log4j.info("tsBeginDate.getTime ()===="+tsBeginDate);
lDays = (tsEndDate.getTime()-tsBeginDate.getTime())/86400000+1;
Log4j.info("lDays===="+lDays);
}
return lDays;
}
/**
* 格式化成Timestamp類型
* @param sDt
* @param bool
* @return
*/
public static java.sql.Timestamp getDateTime(String sDt,boolean bool){
try{
return java.sql.Timestamp.valueOf(sDt); //sDt format:yyyy-mm-dd hh:mm:ss.fffffffff
}catch(IllegalArgumentException iae){
if(bool)
sDt = sDt+" 23:59:59.0";
else
sDt = sDt+" 00:00:00.0";
return java.sql.Timestamp.valueOf(sDt);
}
}
/**
* 根據時間獲取日期字元串
* @param ts
* @return
*/
public static String getDateString(Timestamp ts){
if(ts==null)
return "";
Calendar calendar = Calendar.getInstance();
calendar.setTime(ts);
String strMonth = String.valueOf(calendar.get(Calendar.MONTH)+1);
if(strMonth.length()==1){
strMonth = "0"+strMonth;
}
String strDay = String.valueOf(calendar.get(Calendar.DATE));
if(strDay.length()==1){
strDay = "0"+strDay;
}
return calendar.get(Calendar.YEAR)+"-"+strMonth+"-"+strDay;
}
⑷ Java中如何設置Date對象的年月日
Date
public Date(int year,
int month,
int day)
參數:
year - year 減去 1900,它必須是 0 到 8099 之間的數。(注意,8099 是由 9999 減去 1900 得到的。)
month - 0 到 11 之間的數
day - 1 到 31 之間的數
測試代碼如下:
import java.util.Date;
public class Test {
public static void main(String args[]){
Date date = new Date(2010-1900,1,10);
System.out.println(date);
}
}
運行結果:
Wed Feb 10 00:00:00 CST 2010
希望對你有幫助。。。。。。仍有問題可以HI我。。。。
⑸ java的date類,得到兩位月份的方法如01月
java為了支持多語言,沒有固定的日期格式。你需要根據自己的需要指定日期格式,然後用dateformat類或者simpledateformat類來判斷是否是正確的日期格式。下面的例子供參考。更詳細的內容(比如yyyy,mm,dd各代表什麼)可以參考javadoc。
public
class
dateutil
{
private
static
final
simpledateformat
dateformat
=
null;
static
{
//
指定日期格式為四位年/兩位月份/兩位日期,注意yyyy/mm/dd區分大小寫;
dateformat
=
new
simpledateformat("yyyy/mm/dd");
//
設置lenient為false.
否則simpledateformat會比較寬松地驗證日期,比如2007/02/29會被接受,並轉換成2007/03/01
dateformat.setlenient(false);
}
public
static
boolean
isvaliddate(string
s)
{
try
{
dateformat.parse(s);
return
true;
}
catch
(exception
e)
{
//
如果throw
java.text.parseexception或者nullpointerexception,就說明格式不對
return
false;
}
}
//
下面這個方法則可以將一個日期按照你指定的格式輸出
public
static
string
formatdate(date
d)
{
return
dateformat.format(d);
}
}
⑹ java語言中的date類及方法的用法
Date和Calendar是Java類庫里提供對時間進行處理的類,由於日期在商業邏輯的應用中占據著很重要的地位,所以在這里想對這兩個類進行一個基本的講解,由於技術有限,不到之處請指正。
Date類顧名思義,一看就知道是和日期有關的類了,這個類最主要的作用就是獲得當前時間了,然而這個類裡面也具有設置時間以及一些其他的功能,可是由於本身設計的問題,這些方法卻遭到眾多批評,而這些遭受批評的功能都已移植到另外一個類裡面,這就是今天要講到的第二個類Calendar裡面。
在講兩個類之前,這里又不能不多提一個類,那就是DateFormat類,這個類是用來格式化日期的,稍後也會講到。
首先,讓我們來看一個獲取當前時間的例子:
Date date = new Date();
System.out.println(date.getTime());上面的語句首先創建了Date的一個對象,接著使用getTime方法獲得當前的時間,但是注意了,輸出後的結果確實一串長整型的數字,這是為什麼?實際上這是系統根據當前時間計算出來的一個long型的數,至於是如何計算出來的就不在本文中講述了,那既然這樣的話又如何顯示正確的時間呢?這就要利用到上面的DateFormat類了,這個類是一個基類,它有一個子類是SimpleDateFormat,具體用法請看下面的代碼:
Date date = new Date();
SimpleDateFormat dateFm = new SimpleDateFormat("EEEE-MMMM-dd-yyyy");
System.out.println(dateFm.format(date));這段代碼開始創建了一個Date的對象,用來獲取當前時間,而重點就在於後面的SimpleDateFormat對象,這個對繼承了DateFormat,利用format方法對Date對象進行格式化,然後輸出,而格式的定製是由用戶定製的,EEEE代表星期,MMMM代表月份,而dd代表日,yyyy代表年。使用這個方法就可以根據用戶自定義的格式進行輸出時間。
上面介紹了由用戶自定義格式的輸出時間,下面將來介紹通過JAVA類庫提供的標准格式輸出時間,這就要用到DateFormat類了,請看以下代碼:
Date date = new Date();
DateFormat dateFm = DateFormat.getDateTimeInstance(DateFormat.SHORT,
DateFormat.SHORT);
System.out.println(dateFm.format(date));這里使用的方法和用戶自定義的方法差不多,只是這里使用的是一個抽象類,由於DateFormat是一個抽象類,所以它不能通過構造函數構造對象,在這里是通過getDateTimeInstance()方法獲得該對象,而所傳遞的參數就是DateFormat裡面定義的一些常量,系統根據這些常量輸出當前時間,由於這里使用的是getDateTimeInstance方法,所以將傳遞兩個常量參數,用來分別格式化日期和當前的時間。
上面講述了如何獲得系統時間以及如何格式化輸出,那如果想獲取或者設置時間當中的某一部分又該如何呢?例如年,月,日。這就要靠Calendar這個類了,這個類也是一個抽象類,它有一個子類GregorianCalendar,接下來我會利用這個子類來演示這個過程,請看以下代碼:
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);
GregorianCalendar cal = new GregorianCalendar();
cal.setTime(new Date());
System.out.println("System Date: " + dateFormat.format(cal.getTime()));
cal.set(GregorianCalendar.DAY_OF_WEEK,GregorianCalendar.FRIDAY);
System.out.println("After Setting Day of Week to Friday: " +
dateFormat.format(cal.getTime()));
這段代碼當中,首先創建了一個DateFormat對象進行格式設置,接著創建了一個GregorianCalendar對象cal,接著使用cal.setTime()方法設置cal對象中的時間為當前時間,然後通過format格式化由cal.getTime()返回的時間進行輸出,後面利用set方法設置cal的日期為當前星期的FRIDAY,此時cal中存儲的時間就是這個星期五的該時刻,而後面利用format格式化輸出,假如當前時間為2005年1月27日星期4的11點30分,那麼最後將那句將會輸出2005年1月28日星期5的11點30分。
⑺ java如何得到年月日。
1、獲取當前的時間
Date date=new Date();//此時date為當前的時間
2、設置時間的格式
Date date=new Date();//此時date為當前的時間
System.out.println(date);
SimpleDateFormat dateFormat=new SimpleDateFormat(「YYYY-MM-dd」);//設置當前時間的格式,為年-月-日
System.out.println(dateFormat.format(date));
SimpleDateFormat dateFormat_min=new SimpleDateFormat(「YYYY-MM-dd HH:mm:ss」);//設置當前時間的格式,為年-月-日 時-分-秒
System.out.println(dateFormat_min.format(date));
(7)javadate月份擴展閱讀
java 獲取當前微秒時間:
package com.ffcs.itm;
public class DataSecUtils {
public static void main(String[] args) {
System.out.println(System.currentTimeMillis()); // 毫秒
System.out.println(getmicTime());
System.out.println(System.currentTimeMillis()); // 毫秒
System.out.println(getmicTime());
}
/**
* @return返回微秒
*/
public static Long getmicTime() {
Long cutime = System.currentTimeMillis() * 1000; // 微秒
Long nanoTime = System.nanoTime(); // 納秒
return cutime + (nanoTime - nanoTime / 1000000 * 1000000) / 1000;
}
}
⑻ java Date類型 按年,月,日 取出並輸出,怎麼編寫
這是根據你的要求編寫的代碼。
import java.util.Calendar;
import java.sql.Date;
public class TestAA {
/**
* @param args
*/
public static void main(String[] args) {
Calendar cld = Calendar.getInstance();
Date date = new java.sql.Date(1319534374312l);;
cld.setTime(date);
/**
* 註:在jdk1.6以後下列方法都已過時
* date.getYear();
* date.getMonth();
* date.getDay();
*/
System.out.println("日期為:"+date.toString());
//方法一
System.out.println("年份:"+cld.get(Calendar.YEAR));
System.out.println("月份:"+(cld.get(Calendar.MONTH)+1));
System.out.println("日:"+cld.get(Calendar.DAY_OF_MONTH));
//方法er
System.out.println("年份:"+date.toString().split("-")[0]);
System.out.println("月份:"+date.toString().split("-")[1]);
System.out.println("日:"+date.toString().split("-")[2]);
}
}
你看看,應該沒問題。
⑼ java Date類型 按年,月,日 取出並輸出 求高手.
很高興回答你的問題
下邊是根據你的需求寫的代碼:
import java.util.Calendar;
import java.sql.Date;
public class TestAA {
/**
* @param args
*/
public static void main(String[] args) {
Calendar cld = Calendar.getInstance();
Date date = new java.sql.Date(1319534374312l);;
cld.setTime(date);
/**
* 註:在jdk1.6以後下列方法都已過時
* date.getYear();
* date.getMonth();
* date.getDay();
*/
System.out.println("日期為:"+date.toString());
//方法一
System.out.println("年份:"+cld.get(Calendar.YEAR));
System.out.println("月份:"+(cld.get(Calendar.MONTH)+1));
System.out.println("日:"+cld.get(Calendar.DAY_OF_MONTH));
//方法er
System.out.println("年份:"+date.toString().split("-")[0]);
System.out.println("月份:"+date.toString().split("-")[1]);
System.out.println("日:"+date.toString().split("-")[2]);
}
}
如有疑問,請Hi我,謝謝!
祝學習愉快!
⑽ JAVA語句怎麼把日期(類型為DATA)中的月份提取出來
Calendar
cal
=
Calendar.getInstance();
cal.setTime(new
Date());
int
month
=
cal.get(Calendar.MONTH);
//注意月份是從0開始的,比如當前7月,獲得的month為6
現在Date下面的大部分方法已經廢棄,不推薦使用。