Day12_常用類
阿新 • • 發佈:2020-08-05
Day12_常用類
Date類
java.sql.Date:表示到年月日
java.util.Date:表示到年月日時分秒
import java.util.Date; public class Demo03 { public static void main(String[] args) { Date d = new Date(); System.out.println(d.getTime()); System.out.println(System.currentTimeMillis());//常用,原因:不用建立物件,直接呼叫 //通過時間戳直接初始化java.sql.Date物件 java.sql.Date sqlDate= new java.sql.Date(1596611974007L); System.out.println(sqlDate); //String----->java.sql.Date java.sql.Date valueOf = java.sql.Date.valueOf("2020-8-5"); System.out.println(valueOf); //java.util.Date----->java.sql.Date java.sql.Date sqlDate2=new java.sql.Date(new Date().getTime()); //java.sql.Date----->java.util.Date Date date = sqlDate2;//java.sql.Date類是java.util.Date的子類。子類直接轉化成父類 //java.sql包下的類: java.sql.Time time=new java.sql.Time(1596611974007L); System.out.println(time.toGMTString());//toGMTString()已過時,實際程式設計中不建議用 //時間戳更精確 java.sql.Timestamp ts = new java.sql.Timestamp(1596611974007L); System.out.println(ts); } }
輸出:
1596612952197
1596612952197
2020-08-05
2020-08-05
5 Aug 2020 07:19:34 GMT
2020-08-05 15:19:34.007
String類與Date類的相互轉化
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Demo04 { public static void main(String[] args) { //日期格式類,DateFormat類是抽象類,不能直接建立物件,建立他的實 用類 DateFormat df= new SimpleDateFormat("yyyy-MM-dd hh-mm-ss"); try { //String--->Date Date d = df.parse("2020-8-5 15-53-56"); System.out.println(d); } catch (ParseException e) { e.printStackTrace(); } //Date--->String String str=df.format(new Date()); System.out.println(str); } }
輸出:
Wed Aug 05 15:53:56 CST 2020
2020-08-05 03-57-05
Calendar類
Calendar類很強大,但是用的少!
import java.util.Calendar; import java.util.Date; public class Demo05 { public static void main(String[] args) { //Calendar類是抽象類,通過呼叫其方法來獲取例項 Calendar cal=Calendar.getInstance(); //查詢 System.out.println(cal.get(Calendar.DATE)); System.out.println(cal.get(Calendar.MONTH)); System.out.println(cal.get(Calendar.YEAR)); //設定 cal.set(Calendar.YEAR,2050); System.out.println(cal.get(Calendar.YEAR)); //String--->Calendar //String--->Date String str="2050-2-5"; Date valueOf=java.sql.Date.valueOf(str); //Date--->Calendar cal.setTime(valueOf); System.out.println(cal.get(Calendar.YEAR)); System.out.println(cal.get(Calendar.MONTH)); System.out.println(cal.get(Calendar.DATE)); } }
輸出:
//當前日期:2020-8-5
5
7//月份從0開始計算
2020
2050
2050
1//月份從0開始計算
5
可以查詢日期的日曆(小練習)
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
public class calendar {
public static void main(String[] args) {
System.out.print("請輸入您想要檢視的日期--(格式例如:2020-8-5):");
Scanner sc = new Scanner(System.in);
String str=sc.next();
//String--->Calendar
Date valueOf= java.sql.Date.valueOf(str);
Calendar cal= new GregorianCalendar();
cal.setTime(valueOf);
//輸出日曆頭
System.out.println("日\t一\t二\t三\t四\t五\t六");
//獲取該月的天數
int maxDay=cal.getActualMaximum(Calendar.DATE);
//獲取輸入的天數
int today=cal.get(Calendar.DATE);
//將cal物件設定為該月的第一天
cal.set(Calendar.DATE,1);
//獲取該月第一天是星期幾
int dayOfWeek= cal.get(Calendar.DAY_OF_WEEK);
//在第一天前輸出空格
for (int i = 0; i < dayOfWeek-1; i++) {
System.out.print("\t");
}
//計算輸出的天數,以便按星期換行
int count=0;
count=count+dayOfWeek-1;
for (int i = 0; i < maxDay; i++) {
if(i!=today-1) {
System.out.print(i + 1 + "\t");
count++;
}else{
//標記輸入的日期
System.out.print(i + 1 + "*\t");
count++;
}
//換行
if(count%7==0){
System.out.println();
}
}
}
}
輸出:(查詢2030-3-4,由於markdown的編輯,出現亂碼)
請輸入您想要檢視的日期--(格式例如:2020-8-5):2030-3-4
日 一 二 三 四 五 六
1 2
3 4* 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
列舉
列舉與switch結合應用:
- switch()放: int char byte String 列舉
- case後面只能是列舉下的例項
- 什麼情況下使用列舉?值固定的時候
不能建立物件的四種情況:
-
是介面
-
抽象類
-
沒有空構造器
-
構造器的用private修飾,只能在本類中建立
此時可以通過類名.方法名,類名.屬性名來訪問方法和屬性