一、分類:
(1)java.util.date :該包主要用於獲取系統日期格式
(2)java.sql.date :該包主要用於定義數據庫日期格式
二、構造方法摘要
Date() | 分配 Date 對象並初始化此對象,並獲取當前系統時間(精確到毫秒)。 |
Date(Long date) | 分配 Date 對象並初始化此對象,傳遞的參數是毫秒數,以返回毫秒數所對應的時間。 |
(1)
將當前日期按一定的格式轉換成字符串
將數字字符串轉換成對應的日期格式
package daily; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class date { public static void main(String[] args) throws ParseException { Date now = new Date(); //Date已經重寫toString方法,所以打印輸出的不是這個對象,是當前時間 System.out.println(now); //日期--->字符串 SimpleDateFormat ds = new SimpleDateFormat("yyyy-MM-dd,HH時mm秒ss毫秒"); //獲取日期格式化對象,並按照模式串中的方式進行時間格式解析 String s1 = ds.format(now);//將格式化的時期對象通過format方法去解析當前時間,返回的是字符串 System.out.println(s1); //字符串--->日期 String f = "2020-03-10,12:18:30";//字符串的日期格式,必須要和SimpleDateFormat中的日期格式要一致,不然會出錯 SimpleDateFormat s2 = new SimpleDateFormat("yyyy-MM-dd,HH:mm:S"); Date d = s2.parse(f);//將格式化的時期對象通過parse方法去解析當前字符串,返回的是日期格式 System.out.println(d); } } 輸出: Fri May 08 20:59:09 CST 2020 2020-05-08,20時59秒09毫秒 Tue Mar 10 12:18:00 CST 2020
(2)獲取自1970年:01:01 00:00:00 到目前的毫秒數
public class date { public static void main(String[] args) { Long d = System.currentTimeMillis(); System.out.println(d); } } 運行結果:1588943655532
(3)統計一個方法運行時間
public class date { public static void main(String[] args) { Long s = System.currentTimeMillis(); for (int i=0;i<30;i++) { System.out.println(i); } Long e = System.currentTimeMillis(); System.out.println("該方法運行"+(e-s)+"ms"); } } 運行結果: 0 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 該方法運行6ms
(4)通過有參構造方法:Date(Long date),操作時間,date參數表示傳遞的是毫秒,即獲取傳入毫秒所對應的自1970年00月00日00時00分00秒00ms以來,對應的時間
public class date { public static void main(String[] args) { Date d1 = new Date(1); //傳遞1,表示1970:00:00,00:00:00 1ms Date d2 = new Date(1588858826631L);//自1970以來,1588858826631毫秒數對應的年月日時分秒毫秒 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒 SS"); String s1 = sdf.format(d1); String s2 = sdf.format(d2); System.out.println(s1); System.out.println(s2); //獲取昨天的當前時間 Long yesterday = (System.currentTimeMillis()-1000*60*60*24); String s3 = sdf.format(yesterday); System.out.println(s3); } } 運行結果:
1970年01月01日 08時00分00秒 01
2020年05月07日 21時40分26秒 631
2020年05月07日 21時51分02秒 366
3、拓展:數字(Decimal/Bigdecimal)格式化
(1)字符:
# | 表示任意數字 |
, | 表示千分位 |
. | 表示小數點 |
0 | 表示小數位長度不夠可以補0 |
public class datasfd { public static void main(String[] args) { DecimalFormat df = new DecimalFormat("###,###,###.000");//000表示保留三個小數位,不夠補零 String df1 = df.format(1004396868.3); System.out.println(df1); } } 運行結果: 1,004,396,868.300
(2)Bigdecimal:屬於大數據,精度極高,不屬於基本數據類型,屬於引用數據類型(java對象),一般用於財務軟件的開發,是java.math包下的
public class datasfd { public static void main(String[] args) { BigDecimal b1 = new BigDecimal(300); BigDecimal b2 = new BigDecimal(200); //應用方法進行相加 BigDecimal result = b1.add(b2); System.out.println(result); } } 運行結果: 500
(3)產生隨機數的random對象
import java.util.Random; public class random { public static void main(String[] args) { Random random = new Random(); int i1 = random.nextInt();//從int數據范圍隨機產生一個隨機數 int i2 = random.nextInt(101);//設置隨機數邊界,101表示隨機數的范圍在0——100 System.out.println(i1); System.out.println(i2); } } 運行結果: -1830655855 5
編寫一個程序,隨機產生5個隨機數,數字范圍在[0,100]
package daily; import java.lang.reflect.Array; import java.util.Arrays; import java.util.Random; public class random { public static void main(String[] args) { Random random = new Random(); int[] a = new int[5];//創建一個長度為5的數組 for (int i=0;i<a.length;i++)//對數組進行初始化,不初始化數組默認存儲0 { a[i]=-1; } int b=0; while (b<a.length)//b控制元素插入位置 { boolean flag=true;//標志位用來判斷元素是否遍歷完畢
int number = random.nextInt(101); for (int j =0;j<a.length;j++) { if (a[j] == number) { flag=false; break; } } if (flag) { a[b]=number; b++; } } System.out.println(Arrays.toString(a)); } }
運行結果:
[73, 68, 83, 3, 10]
}