黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

Java 日期時間

java 日期時間

java.util 包提供了 date 類來封裝當(dāng)前的日期和時間。

java.util 包提供了 calendar 類用來設(shè)置和獲取日期數(shù)據(jù)的特定部分。

另外,還提供了 simpledateformat 類來格式化日期的格式。

 

1. date 類

1)date 類的創(chuàng)建

date 類提供兩個構(gòu)造函數(shù)來范例化 date 對象。

第一個構(gòu)造函數(shù)使用當(dāng)前日期和時間來初始化對象。

date()

第二個構(gòu)造函數(shù)接收一個參數(shù),該參數(shù)是從1970年1月1日起的毫秒數(shù)。

date(long millisec)

2)date 類的操作

date對象創(chuàng)建以后,可以調(diào)用下面的方法。

序號 方法和描述
1 boolean after(date date)
若當(dāng)調(diào)用此方法的date對象在指定日期之后返回true,否則返回false。
2 boolean before(date date)
若當(dāng)調(diào)用此方法的date對象在指定日期之前返回true,否則返回false。
3 object clone( )
返回此對象的副本。
4 int compareto(date date)
比較當(dāng)調(diào)用此方法的date對象和指定日期。兩者相等時候返回0。調(diào)用對象在指定日期之前則返回負(fù)數(shù)。調(diào)用對象在指定日期之后則返回正數(shù)。
5 int compareto(object obj)
若obj是date類型則操作等同于compareto(date) 。否則它拋出classcastexception。
6 boolean equals(object date)
當(dāng)調(diào)用此方法的date對象和指定日期相等時候返回true,否則返回false。
7 long gettime( )
返回自 1970 年 1 月 1 日 00:00:00 gmt 以來此 date 對象表示的毫秒數(shù)。
8 int hashcode( )
 返回此對象的哈希碼值。
9 void settime(long time)
 
用自1970年1月1日00:00:00 gmt以后time毫秒數(shù)設(shè)置時間和日期。
10 string tostring( )
把此 date 對象轉(zhuǎn)換為以下形式的 string: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (sun, mon, tue, wed, thu, fri, sat)。

3)獲取當(dāng)前日期時間

java中獲取當(dāng)前日期和時間很簡單,使用 date 對象的 tostring() 方法來打印當(dāng)前日期和時間:

import java.util.date;
  
public class datedemo {
   public static void main(string args[]) {
       // 初始化 date 對象
       date date = new date();
        
       // 使用 tostring() 函數(shù)顯示日期時間
       system.out.println(date.tostring());
   }
}

以上范例編譯運(yùn)行結(jié)果如下:

mon may 04 09:51:52 cdt 2013

4)日期比較

java使用以下三種方法來比較兩個日期:

  • 使用 gettime() 方法獲取兩個日期(自1970年1月1日經(jīng)歷的毫秒數(shù)值),然后比較這兩個值。
  • 使用方法 before(),after() 和 equals()。例如,一個月的12號比18號早,則 new date(99, 2, 12).before(new date (99, 2, 18)) 返回true。
  • 使用 compareto() 方法,它是由 comparable 接口定義的,date 類實現(xiàn)了這個接口。

 

2. simpledateformat 類

simpledateformat 是一個以語言環(huán)境敏感的方式來格式化和分析日期的類。simpledateformat 允許你選擇任何用戶自定義日期時間格式來運(yùn)行。

1)simpledateformat 類使用案例

import  java.util.*;
import java.text.*;
 
public class datedemo {
   public static void main(string args[]) {
 
      date dnow = new date( );
      simpledateformat ft = new simpledateformat ("yyyy-mm-dd hh:mm:ss");
 
      system.out.println("當(dāng)前時間為: " + ft.format(dnow));
   }
}

代碼說明:

simpledateformat ft = new simpledateformat ("yyyy-mm-dd hh:mm:ss");

這一行代碼確立了轉(zhuǎn)換的格式,其中 yyyy 是完整的公元年,mm 是月份,dd 是日期,hh:mm:ss 是時、分、秒。

注意:有的格式大寫,有的格式小寫,例如 mm 是月份,mm 是分;hh 是 24 小時制,而 hh 是 12 小時制。

以上范例編譯運(yùn)行結(jié)果如下:

當(dāng)前時間為: 2018-09-06 10:16:34

2)日期和時間的格式化編碼

時間模式字符串用來指定時間格式。在此模式中,所有的 ascii 字母被保留為模式字母,定義如下:

字母 描述 示例
g 紀(jì)元標(biāo)記 ad
y 四位年份 2001
m 月份 july or 07
d 一個月的日期 10
h  a.m./p.m. (1~12)格式小時 12
h 一天中的小時 (0~23) 22
m 分鐘數(shù) 30
s 秒數(shù) 55
s 毫秒數(shù) 234
e 星期幾 tuesday
d 一年中的日子 360
f 一個月中第幾周的周幾 2 (second wed. in july)
w 一年中第幾周 40
w 一個月中第幾周 1
a a.m./p.m. 標(biāo)記 pm
k 一天中的小時(1~24) 24
k  a.m./p.m. (0~11)格式小時 10
z 時區(qū) eastern standard time
' 文字定界符 delimiter
" 單引號 `

3)解析字符串為時間

simpledateformat 類有一些附加的方法,特別是parse(),它試圖按照給定的simpledateformat 對象的格式化存儲來解析字符串。例如:

import java.util.*;
import java.text.*;
  
public class datedemo {
 
   public static void main(string args[]) {
      simpledateformat ft = new simpledateformat ("yyyy-mm-dd"); 
 
      string input = args.length == 0 ? "1818-11-11" : args[0]; 
 
      system.out.print(input + " parses as "); 
 
      date t; 
 
      try { 
          t = ft.parse(input); 
          system.out.println(t); 
      } catch (parseexception e) { 
          system.out.println("unparseable using " + ft); 
      }
   }
}

以上范例編譯運(yùn)行結(jié)果如下:

$ java datedemo
1818-11-11 parses as wed nov 11 00:00:00 gmt 1818
$ java datedemo 2007-12-01
2007-12-01 parses as sat dec 01 00:00:00 gmt 2007

 

3. calendar類

我們現(xiàn)在已經(jīng)能夠格式化并創(chuàng)建一個日期對象了,但是我們?nèi)绾尾拍茉O(shè)置和獲取日期數(shù)據(jù)的特定部分呢,比如說小時,日,或者分鐘? 我們又如何在日期的這些部分加上或者減去值呢? 答案是使用calendar 類。

calendar類的功能要比date類強(qiáng)大很多,而且在實現(xiàn)方式上也比date類要復(fù)雜一些。

calendar類是一個抽象類,在實際使用時實現(xiàn)特定的子類的對象,創(chuàng)建對象的過程對程序員來說是透明的,只需要使用getinstance方法創(chuàng)建即可。

1)創(chuàng)建一個代表系統(tǒng)當(dāng)前日期的calendar對象

calendar c = calendar.getinstance();//默認(rèn)是當(dāng)前日期

2)創(chuàng)建一個指定日期的calendar對象

使用calendar類代表特定的時間,需要首先創(chuàng)建一個calendar的對象,然后再設(shè)定該對象中的年月日參數(shù)來完成。

//創(chuàng)建一個代表2009年6月12日的calendar對象
calendar c1 = calendar.getinstance();
c1.set(2009, 6 - 1, 12);

3)calendar類對象字段類型

calendar類中用以下這些常量表示不同的意義,jdk內(nèi)的很多類其實都是采用的這種思想

常量描述
calendar.year年份
calendar.month月份
calendar.date日期
calendar.day_of_month日期,和上面的字段意義完全相同
calendar.hour12小時制的小時
calendar.hour_of_day24小時制的小時
calendar.minute分鐘
calendar.second
calendar.day_of_week星期幾

4)calendar類對象信息的設(shè)置

set設(shè)置

如:

calendar c1 = calendar.getinstance();

調(diào)用:

public final void set(int year,int month,int date)
c1.set(2009, 6, 12);//把calendar對象c1的年月日分別設(shè)這為:2009、6、12

利用字段類型設(shè)置

如果只設(shè)定某個字段,例如日期的值,則可以使用如下set方法:

public void set(int field,int value)

把 c1對象代表的日期設(shè)置為10號,其它所有的數(shù)值會被重新計算

c1.set(calendar.date,10);

把c1對象代表的年份設(shè)置為2008年,其他的所有數(shù)值會被重新計算

c1.set(calendar.year,2008);

其他字段屬性set的意義以此類推

add設(shè)置

calendar c1 = calendar.getinstance();

把c1對象的日期加上10,也就是c1也就表示為10天后的日期,其它所有的數(shù)值會被重新計算

c1.add(calendar.date, 10);

把c1對象的日期減去10,也就是c1也就表示為10天前的日期,其它所有的數(shù)值會被重新計算

c1.add(calendar.date, -10);

其他字段屬性的add的意義以此類推

5)calendar類對象信息的獲得

calendar c1 = calendar.getinstance();
// 獲得年份
int year = c1.get(calendar.year);
// 獲得月份
int month = c1.get(calendar.month) + 1;
// 獲得日期
int date = c1.get(calendar.date);
// 獲得小時
int hour = c1.get(calendar.hour_of_day);
// 獲得分鐘
int minute = c1.get(calendar.minute);
// 獲得秒
int second = c1.get(calendar.second);
// 獲得星期幾(注意(這個與date類是不同的):1代表星期日、2代表星期1、3代表星期二,以此類推)
int day = c1.get(calendar.day_of_week);

下一節(jié):java 數(shù)據(jù)結(jié)構(gòu)

java語言 教程

相關(guān)文章