一、System靜態方法
點擊查看代碼
package com.Tang.StringDay01;
import org.junit.Test;
public class DateTimeTest {
/*
System類中的currentTimeMillis()方法
*/
@Test
public void test3(){
long time = System.currentTimeMillis();
//回傳當前時間與1970年1月1日0時0分0秒之間以毫秒為單位的時間差
//稱為時間戳
System.out.println(time);
}
}

二、Date類
點擊查看代碼
/*
java.tuil.Date類
1.兩個構造器的使用
Date():創建了一個對應當前時間的Date物件
創建指定毫秒數的Date物件
2.兩個方法的使用
toString():顯示當前的年、月、日、時、分、秒
getTime():獲取當前date物件對應的毫秒數,(時間戳)
3.java.sql.Date對應著資料庫中的日期型別的變數
*/
@Test
public void test(){
//構造器一:Date():創建了一個對應當前時間的Date物件
Date date1 = new Date();
System.out.println(date1.toString());
System.out.println(date1.getTime());//1655192749803
System.out.println("=====================");
//構造器二:創建指定毫秒數的Date物件
Date date = new Date(1655192749803L);
System.out.println(date);
System.out.println("=====================");
//創建Java.sql.Date物件
java.sql.Date date2 = new java.sql.Date(1655192749803L);
System.out.println(date2);
System.out.println("=====================");
//如何將Java.util.Date物件轉換為Java.sql.Date物件
//情況一:多型
Date date3 = new java.sql.Date(1655192749803L);
java.sql.Date date4 = (java.sql.Date)date3;
//情況二:
Date date5 = new Date();
java.sql.Date date6 = new java.sql.Date(date5.getTime());
}
運行結果圖

三、Calendar類
1.實體化
方式一:創建其子類(GregorianCalendar)的物件
方式二:呼叫其靜態方法getInstance()
點擊查看代碼
@Test
public void test(){
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getClass());//查看物件是由哪個類造的
//常用方法
//get()
int days = calendar.get(Calendar.DAY_OF_MONTH);//獲取今天是這個月的第幾天
System.out.println(days);
int days1 = calendar.get(Calendar.DAY_OF_YEAR);//獲取今天是這一年的第幾天
System.out.println(days1);
//set()
System.out.println("=============");
calendar.set(Calendar.DAY_OF_MONTH,22);
days = calendar.get(Calendar.DAY_OF_MONTH);//獲取設定的日期是這個月的第幾天
System.out.println(days);
//add()
System.out.println("=============");
calendar.add(Calendar.DAY_OF_MONTH,3);//想要再此日期上減去3天只需要寫成-3即可
days = calendar.get(Calendar.DAY_OF_MONTH);//獲取當前日期是這個月的第幾天,然后在此基礎上加上3天
System.out.println(days);
//getTime():日歷類---->Date
System.out.println("=============");
Date date = calendar.getTime();
System.out.println(date);
//setTime():Date--->日期類
System.out.println("=============");
Date date1 = new Date();//獲取當前Date
calendar.setTime(date1);//將Date轉化為日期類
days = calendar.get(Calendar.DAY_OF_YEAR);//獲取該日期是這一年的第幾天
System.out.println(days);
}

注意事項:
獲取月份時:一月是0,二月是1,依次類推12月是11
獲取星期時:周日是1,周一是2,依次類推周六是7
四、SimpleDateFormat類
點擊查看代碼
/*
SimpleDateFormat對日期Date類的格式化和決議
1.兩個操作
1.1格式化:日期--->字串
1.2決議:格式化的逆程序,字串--->日期
*/
@Test
public void test4() throws ParseException {
//實體化SimpleDateFormat:使用默認的構造器
SimpleDateFormat sdf = new SimpleDateFormat();
//格式化:日期--->字串
Date date = new Date();
System.out.println(date);
String format = sdf.format(date);
System.out.println(format);
//決議:格式化的逆程序,字串--->日期
String str = "2022/6/15 下午4:10";//默認格式
Date date1 = sdf.parse(str);
System.out.println(date1);
System.out.println("=================");
//格式化與決議方式二:按照指定的方式進行格式化和決議:呼叫代參的構造器
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String format1 = sdf1.format(date);
System.out.println(format1);
//決議
Date parse = sdf1.parse("2022-06-15 04:20:53");//必須按照給定的格式,否則會拋例外
System.out.println(parse);
}

1.練習題:字串"2022-6-15",轉換為Java.sql.Date
點擊查看代碼
@Test
public void test5() throws ParseException {
String birth = "2022-6-15";
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
Date parse = sdf1.parse(birth);
java.sql.Date date = new java.sql.Date(parse.getTime());
System.out.println(date);
}

2.練習題:三天打魚兩天曬網,輸入兩個日期,從第一個日期開始,到第二個日期是請問這天實在打魚還是在曬網
若在測驗單元@Test中無法使用Scanner輸入可以參考以下解決方法;
(1)打開idea------找到help-------點擊Edit Custom VM Options
(2)在最后添加:-Deditable.java.test.console=true
(3)保存,重新打開idea,
點擊查看代碼
@Test
public void test6() throws ParseException {
//總天數的計算
//這里在Test測驗單元里無法使用Scanner,也就是無法輸入日期可參考上圖解決方法
Scanner input = new Scanner(System.in);
String s = input.nextLine();
String s1 = input.nextLine();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf.parse(s);
Date date2 = sdf1.parse(s1);
int totalDay = (int) ((date2.getTime() -date1.getTime()) /(1000 * 60 * 60 *24) + 1);
System.out.println("從1999-04-06到2022-06-15一共有"+ totalDay+"天");
if(totalDay % 5 == 1 || totalDay % 5 == 2 || totalDay % 5 == 3)
System.out.println("這一天在打魚");
else
System.out.println("這一天在曬網");
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/498589.html
標籤:其他
