Date日期格式


一、分類:

(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]

 

 


}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM