第2章 日期相關類
阿新 • • 發佈:2018-04-08
Java1.1 Date類
Date: 表示特定的瞬間,精確到毫秒,他可以通過方法來設定自己所表示的時間,可以表示任意的時間
1.1.1 Date類的構造方法
Date() :創建的是一個表示當前系統時間的Date對象
Date(long date) :根據"指定時間"創建Date對象
1.1.2 案例代碼五 要格式化一個當前語言環境下的日期也就是日期 -> 文本),要通過下面的方法來完成。DateFormat是抽象類,我們需要使用其子類SimpleDateFormat來創建對象。
A:SimpleDateFormat構造方法
Date: 表示特定的瞬間,精確到毫秒,他可以通過方法來設定自己所表示的時間,可以表示任意的時間
1.1.1 Date類的構造方法
Date() :創建的是一個表示當前系統時間的Date對象
Date(long date) :根據"指定時間"創建Date對象
1.1.2 案例代碼五
package com.itheima_03; import java.util.Date; /* * Date: 表示特定的瞬間,精確到毫秒,他可以通過方法來設定自己所表示的時間,可以表示任意的時間 * System.currentTimeMillis():返回的是當前系統時間,1970-1-1至今的毫秒數 * * 構造方法: * Date() :創建的是一個表示當前系統時間的Date對象 Date(long date) :根據"指定時間"創建Date對象 */ public class DateDemo { public static void main(String[] args) { //Date() //Date d = new Date(); //System.out.println(d);//Thu Aug 26 14:17:28 CST 2049 //System.out.println(d.toLocaleString()); //Date(long date) Date d2 = new Date(1000 * 60 * 60 * 24);//時區 有時差 System.out.println(d2.toLocaleString()); } }
1.1.3 Date類常用方法
void setTime(long time)
long getTime()
1.1.4 案例代碼六:
package com.itheima_03; import java.util.Date; /* * Date的常用用方法 毫秒值 --- Date 設置 返回值是void,參數long void setTime(long time) Date(long date) Date --- 毫秒值 獲取 返回long,無參數 long getTime() */ public class DateDemo2 { public static void main(String[] args) { Date d = new Date();//默認當前系統時間 //d.setTime(1000 * 60 * 60 * 24 * 2); System.out.println(d.toLocaleString()); System.out.println(d.getTime());//172800000 d.setTime(172800000L); System.out.println(d.toLocaleString()); } }
1.2 DateFormat類 & SimpleDateFormat
DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化並解析日期或時間。日期/時間格式化子類(如 SimpleDateFormat類)允許進行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和標準化。
我們通過這個類可以幫我們完成日期和文本之間的轉換。
繼續閱讀API,DateFormat 可幫助進行格式化並解析任何語言環境的日期。對於月、星期,甚至日歷格式(陰歷和陽歷),其代碼可完全與語言環境的約定無關。
1.2.1 DateFormat&SimpleDateFormat的常用方法
A:SimpleDateFormat構造方法
B:DateFormat類方法
1.2.2 案例代碼七:
package com.itheima_04;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
* SimpleDateFormat:
* 格式化:
* Date --- String
* 2049-8-26 2049年8月26日
* String format(Date date)
* 解析:
* String --- Date
* "2049-8-26"
* Date parse(String source)
*
* 構造方法:
* SimpleDateFormat() :使用默認的模式進行對象的構建
* SimpleDateFormat(String pattern) :使用的指定的模式進行對象的構建
*
* 註意:Exception in thread "main" java.text.ParseException: Unparseable date: "49年9月26日 下午1:29"
* 解析的字符串,模式必須和構建對象的模式一樣
*
*/
public class SimpleDateFormatDemo {
public static void main(String[] args) throws ParseException {
//method();
//method2();
//使用指定的模式進行對象的構建
//1999年9月1日 10:10:10
//4個小姨2個大美眉和2個小弟弟
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//格式化
Date date = new Date();
String s = sdf.format(date);
System.out.println(s);//2049年08月26日 13:39:12
//解析
Date d = sdf.parse("2049年08月26日 13:39:12");
System.out.println(d.toLocaleString());
}
private static void method2() throws ParseException {
//使用指定的模式進行對象的構建
//1999年9月1日
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
//格式化
Date date = new Date();
String s = sdf.format(date);
System.out.println(s);//2049年08月26日
//解析
Date d = sdf.parse("2049年08月26日");
System.out.println(d.toLocaleString());
}
private static void method() throws ParseException {
//使用默認模式進行對象的構建
SimpleDateFormat sdf = new SimpleDateFormat();
//創建日期對象
Date date = new Date();
//格式化 把日期對象轉換成字符串
String s = sdf.format(date);
System.out.println(s);//49-8-26 下午1:29
//解析 把字符串轉換成日期對象
Date d = sdf.parse("49年9月26日 下午1:29");
System.out.println(d.toLocaleString());
}
}
1.2.3 案例代碼八:
package com.itheima_04;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/*
* 需求:求出你來這個世界上多少天
*/
public class SimpleDateFormatTest {
public static void main(String[] args) throws ParseException {
//出生日期
String birthday = "1998-01-01";
//今天日期
String now = "2000-01-01";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//將字符串轉換成日期對象
Date d1 = sdf.parse(birthday);
Date d2 = sdf.parse(now);
//將日期對象轉換成long類型
long l = d1.getTime();
long l2 = d2.getTime();
System.out.println((l2 - l) / 1000 / 60 / 60 / 24);
}
}
1.3 Calendar類1.3.1 Calendar類概述
Calendar是日歷類,在Date後出現,替換掉了許多Date的方法。該類將所有可能用到的時間信息封裝為靜態成員變量,方便獲取。
Calendar為抽象類,由於語言敏感性,Calendar類在創建對象時並非直接創建,而是通過靜態方法創建,將語言敏感內容處理好,再返回子類對象,如下:
Calendar類靜態方法
Calendar c = Calendar.getInstance(); //返回當前時間
1.3.2 Calendar類常用方法
1.3.3 案例代碼九:
package com.itheima_05;
import java.util.Calendar;
/*
* Calendar:日歷,提供了一些操作年月日時的方法
*
* 獲取
* 修改
* 添加
*
*
*/
public class CalendarDemo {
public static void main(String[] args) {
//static Calendar getInstance()
Calendar c = Calendar.getInstance();
//void set(int field, int value) :把指定的字段修改成指定的值
//c.set(Calendar.DAY_OF_MONTH, 20);
//void add(int field, int amount): 在指定的字段上加上指定的值
c.add(Calendar.DAY_OF_MONTH, -1);
//int get(int field) // 返回給定日歷字段的值
//public static final int YEAR 1
//System.out.println(Calendar.YEAR);
//int year = c.get(1);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月" + day + "日");
}
}
第2章 日期相關類