一文解決Java的日期類,數字格式化類等

獲取系統當前時間

包: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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章