zoukankan      html  css  js  c++  java
  • 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]

    }
  • 相关阅读:
    《游戏改变世界》笔记
    2017第6周日
    换个角度看执行力
    怎样拥有执行力和高效能
    提高个人执行力的五个关键
    Apache服务器部署多个进程
    IE的Cookie目录和临时缓存目录的关系
    IE/Firefox/Chrome等浏览器保存Cookie的位置
    在浏览器中简单输入一个网址,解密其后发生的一切(http请求的详细过程)
    如何设置win7系统的文件夹为系统文件,从而隐藏文件夹
  • 原文地址:https://www.cnblogs.com/ibear/p/12856250.html
Copyright © 2011-2022 走看看