1. 程式人生 > >常用類(除去string和包裝類)

常用類(除去string和包裝類)

Date類

  • 日期,時間處理類,jdk7及之前使用,有很大的詬病,比較麻煩

    Long millis = System.currentTimeMillis();//當前相對時間,從1970年首日零點開始計算(計算機誕生)

Calendar類

  • 日曆類

其他常用類

  • String SimpleDateDteFormat("yyyy-MM-dd HH:mm:ss");//格式日期工具類字母不可亂寫
  • Date() 無參,當前時間

jdk8,日期的處理方式

  • LocalDate類
  • LocalTime類
  • LocalDateTime類
    • 和string類似,不會修改原來的,只會產生新的
    • 不再常量區

Math類

  • round();double四捨五入

BigInteger類

  • 和string類似,不會修改原來的資料,只會產生新的
  • BigInteger(String str);

BigDecimal類

  • 定點數,精確值
  • 支援任意精度的定點數
  • 十進位制表示
package com.atguigu.javase.date;
package com.atguigu.javase.date;

import static org.junit.Assert.*;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import org.junit.Test;

public class DateTest {
    
    @Test       //clendar類,日曆類,包含諸多資訊,保留陣列中,可以通過方法來呼叫
    public void testName2() throws Exception {
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar);
        
        //calendar.getYear();
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH); // 月份資料比實際小1
        int day = calendar.get(Calendar.DAY_OF_MONTH);
        
        System.out.println(year);
        System.out.println(month);
        System.out.println(day);
        
        //calendar.setYear(2008);
        calendar.set(Calendar.YEAR, 2008);
        calendar.set(Calendar.MONTH, 7);
        calendar.set(Calendar.DAY_OF_MONTH, 10);
        
        System.out.println(calendar.getTime());
        
        calendar.add(Calendar.YEAR, 11);
        calendar.add(Calendar.MONTH, 4);
        calendar.add(Calendar.DAY_OF_MONTH, -500); // 向前走500天
        
        System.out.println(calendar.getTime());
        
        // 獲取日曆物件, 把它變成你的生日 , 推算你的百歲是哪天.
        //add ,set ,get,get方法需要傳入之中的常量來尋找
    }
     
    @Test   //Date類和SimpleDateFormat類,Date類可以獲取當前時間util,simple來格式化date類,根據提前傳入的字串,
    public void testName() throws Exception {
        long millis = System.currentTimeMillis(); // 當前時間毫秒數
        System.out.println(millis);
        
        Date date = new Date(); // 當前時間物件
        System.out.println(date);
        
        // 日期格式化器, y表示年, M表示月, d表示日, H表示小時, m表示分鐘, s表示秒
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        
        String string = dateFormat.format(date); // 把日期物件格式化成相應的字串
        System.out.println(string);
        
        String string2 = "1998-03-22 15:22:30";
        Date parse = dateFormat.parse(string2); // 把符合格式的日期字串解析成日期物件, 字串要嚴格匹配模式字串
        System.out.println(parse);
        
        Date date2 = new Date(2008, 8, 10); // 這個構造器很爛, 簡直沒法用, 因為年會多1900, 月會多1
        System.out.println(date2);
        
        String format = dateFormat.format(millis); // 還可以格式化毫秒, 很方便
        System.out.println(format);
        
        // 寫一個小時鐘
    }
}

package com.atguigu.javase.date;

import org.junit.Test;

class Simple {

    @Override   //呼叫函式來體現gc函式的執行,執行列印,由虛擬機器來呼叫
    protected void finalize() throws Throwable {
        System.out.println("我要死了.....");
    }
    
}

public class SystemTest {
    
    @Test       //測試gc回收器,
    public void testName2() throws Exception {
        Simple simple = new Simple();
        simple = null;
        System.gc(); // gc()方法不是馬上執行, 而是交由另外的後臺執行緒去執行.
    }
    
    @Test       //測試finlly和return以及exit()函式的作用效果和優先性
    public void test1() {
        System.out.println("begin");
        try {
            if (true) {
                //return;
                System.exit(0); // 終止JVM
            }
        } finally {
            System.out.println("finally");
        }
        System.out.println("end");
    }
    
    @Test   //測試currentTimeMillis()函式和System類
    public void testName() throws Exception {
        long currentTimeMillis = System.currentTimeMillis();
        System.out.println(currentTimeMillis);
    }
}