獲取系統當前時間
包:java.util.Date;
- 直接調用無參數構造方法
Date nowtime = new Date(); - 日期的格式化
這時SimpleDateFormat類上場了。
SimpleDateFormat是抽象類DateFormat的子類。
所在的包是:java.text.SimpleDateFormat;
yyyy 年
MM 月
dd 日
HH 時
mm 分
ss 秒
SSS 毫秒
例如:
Date nowtime = new Date();
SimpleDateFormat times = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS);
String nowtime = times.format(nowtime); - 獲取系統當前時間如下:
package package3;
import java.util.Date;
import java.text.SimpleDateFormat;
public class Nowtime {
public static void main(String[] args) {
// TODO Auto-generated method stub
Date nowtime = new Date();
SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:sss");
String nowtimes = time.format(nowtime);
System.out.println(nowtimes);
}
}
- 那如果有個日期字符串怎麼裝換成Date類型。(還記得Python中的日期反轉嗎,這裏不過是用的不同的方法而已)
String time = “2020-3-30 10:15:08:06:666”;
SimpleDateFormat times2 = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss-SSS);
Date dateTime =times.parse(time);//這裏可能會有異常,後期說。 - 將日期字符串轉換成可處理的Date類型。
package package3;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateStringChange {
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
String time ="2020-3-31 13:32:59:010";
SimpleDateFormat times = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
Date dateTime = times.parse(time);
System.out.println(dateTime);
}
}
- 獲取時間戳(毫秒爲單位,1970.1.1,24時到現在的時間)
long nowTimes = System.currentTimeMillis();
要這個有什麼作用呢? - 統計一個算法或方法的運行時間。
- 之後的時間戳減去之前的時間戳。
package package3;
public class TimeCuo {
public static void main(String[] args) {
// TODO Auto-generated method stub
long Times1 = System.currentTimeMillis();
add();
long Times2 = System.currentTimeMillis();
System.out.println(Times2-Times1+"ms");
}
public static void add() {
for(int i=0;i<100000000;i++)
i+=1;
}
}
System類
- System.out out是System的相關屬性和方法。
- println() 方法不是System類的,是PrintStream類的方法。
- gc() 建議啓動垃圾回收器。
- currentTimeMillis() 獲取時間戳。
- System.exit(0) 退出JVM.
數字格式化
- 類DecimalFormat,其父類NumberFormat爲抽象類。
- 包 java.text.DecimalFormat
表示任意數字 “#”
代表千分位 " ,"
代表小數 “.”
代表不夠時補0 “0”
科學計算法 “0.###E0” 如:1234 “1.234E3”。
package package3;
import java.text.DecimalFormat;
public class Format1 {
public static void main(String[] args) {
DecimalFormat aa = new DecimalFormat("0.##E0");
System.out.println(aa.format(12569.35554));
}
}
數字類(BigDecimal)
- BigDecimal 屬於大數據,精度極高,不屬於基本數據類型,屬於java對象(引用數據類型)這是sun提供的類。專門用於財務軟件中。
- 在數學包中,java.math.BigDecimal
BigDecimal v1 = new BigDecimal (100);
BigDecimal v2 = new BigDecimal(200);
BigDecimal v3 = v1.add(v2);
divide方法:BigDecimal做除法的時候一定要在divide方法中傳遞第二個參數,定義精確到小數點後幾位,否則在不整除的情況下,結果是無限循環小數時,就會拋出以上異常。
解決方法:.divide(v2, 2, BigDecimal.ROUND_HALF_UP);
BigDecimal num1 = new BigDecimal(0.005);
BigDecimal num2 = new BigDecimal(1000000);
BigDecimal num3 = new BigDecimal(-1000000);
//儘量用字符串的形式初始化
BigDecimal num12 = new BigDecimal("0.005");
BigDecimal num22 = new BigDecimal("1000000");
BigDecimal num32 = new BigDecimal("-1000000");
//加法
BigDecimal result1 = num1.add(num2);
BigDecimal result12 = num12.add(num22);
//減法
BigDecimal result2 = num1.subtract(num2);
BigDecimal result22 = num12.subtract(num22);
//乘法
BigDecimal result3 = num1.multiply(num2);
BigDecimal result32 = num12.multiply(num22);
//絕對值
BigDecimal result4 = num3.abs();
BigDecimal result42 = num32.abs();
//除法
BigDecimal result5 = num2.divide(num1,20,BigDecimal.ROUND_HALF_UP);
BigDecimal result52 = num22.divide(num12,20,BigDecimal.ROUND_HALF_UP);
其他方法查找幫助文檔。
隨機數類
- 包 java.util.Random;
- Random random = new Random();
- int num = random.nextInt();
- //產生0到100的數據
int num2 = random.nextInt(101);
練習:生成5個不重複的隨機數,放到數組中。
枚舉類
- 可是以後開發中可能遇到返回類型不只兩種。
枚舉可以解決這個問題。 - 可以列舉出來的才使用枚舉。
-
- 枚舉也是一種引用數據類型。
定義:
enum result{
Success ,
Fuailer
}
使用:
result.Success
- 枚舉也是一種引用數據類型。