日期类

日期类

1.怎么获取系统当前时间以及Date对象转换成日期字符串:

Date的构造方法分为两种

第一种无参:

    • Date()

      分配一个 Date对象,并初始化它,以便它代表它被分配的时间,测量到最近的毫秒

import java.util.Date;
import java.text.*;
public class DateTest01 {
    public static void main(String[] args) {
        //获取系统当前时间(精确到毫秒),直接调用无参数构造方法就行
        Date nowTime = new Date();//代表系统当前时间
       // System.out.println(nowTime);
        //这样虽然可以显示出时间但是不符合中国人的看时间的习惯,因此格式化成我们习惯的时间格式

        
        //日期可以格式化吗?
        // 将日期类型Date,按照指定的格式进行转换:Date 转换成具有一定格式的日期字符串  String
        //SimpleDateFormat是java.text包下的,专门负责日期格式化的
        //SimpleDateFormat sdf = new SimpleDateFormat(日期格式);
        //日期格式:
        /*
        yyyy 年(年是四位)
        MM  月(月是两位)
        dd 日
        HH 时
        mm 分
        ss 秒
        SSS 毫秒(1000毫秒等于1秒)
         */
        SimpleDateFormat sdf = new SimpleDateFormat("["+"yyyy-MM-dd HH:mm:ss SSS"+"]");
        String nowDateStr = sdf.format(nowTime);
        System.out.println(nowDateStr);
    }
}

第二种: 通过毫秒构造Date对象

    • Date(long date)

      分配一个 Date对象,并将其初始化为表示自称为“时代”的标准基准时间以后的指定毫秒数,即1970年1月1日00:00:00 GMT。

import java.util.Date;
import java.text.SimpleDateFormste;
public class DateTest01{
    public static void main(String[] args) {
        Date nowTime = new Date(1);//这个时间表示1970年01月01日 00:00:00 000
        SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        String m = s.format(nowTime);
        System.out.println(m);
        //获得昨天此时的时间
        Date time2 = new Date(System.currentTimeMillis() - 1000*60*60*24);
        String t = s.format(time2);
        System.out.println(t);
        //获得去年的今天此时时间
        Date time3 = new Date(System.currentTimeMillis() -1000*60*60*24*365L);
        String p = s.format(time3);
        System.out.println(p);
    }
}

2.日期字符串转换成Date类型:

import java.util.Date;
import java.text.*;
public class DateTest01 {
    public static void main(String[] args) throws ParseException {
        String time = "2008-08-08 08:08:08 888";
        //如果字符串格式与Simpledateformate中格式不同则出现parseException异常
        SimpleDateFormat sdf = new SimpleDateFormat("["+"yyyy-MM-dd HH:mm:ss SSS"+"]");
        Date d = sdf.parse(time);
    }
}

3.获取1970年1月1日 00:00:00 000到当前系统时间的毫秒数的作用。

简单总结一下System类中属性和方法:

1.System.out(out是System类的静态变量):

public final static PrintStream out = null;

println方法不是System类的,是printStream类的方法。

2.System.gc()是建议启动垃圾回收器

3.System.currentTimeMill()获取自1970年01月01日 00:00:00 000到当前系统默认的时间的总毫秒数。(当你的客户觉得你的程序不够快,这是你就需要调优,这时你就可以用这个查看方法的运行时间,如果很慢,这时你就需要算法和数据结构的调优)。

4.System.exit(0)退出JVM

import java.text.*;
public class DateTest01 {
    public static void main(String[] args) throws ParseException {
        //获取1970年1月1日 00:00:00 000到当前系统时间的毫秒数有什么用????????????
        //统计一个方法耗时
       /*long nowTimeMills = System.currentTimeMillis();
        System.out.println(nowTimeMills);*/
        long start = System.currentTimeMillis();
        prints();
        long end = System.currentTimeMillis();
        System.out.println("方法耗费时间 = " + (end - start) + "毫秒");
    }
    public static void prints(){
        for (int i =0; i < 1000; i++){
            System.out.println(i);
        }
    }
}

4.数字格式化-------DecimalFormat类

import java.text.DecimalFormat;
public class DecimalFormatTest {
    public static void main(String[] args) {
        //java.text.DecialFormat专门负责数字格式化
        /*DecimalFormat df = new DecimalFormat("数字格式");*/
        /*数字格式有那些  #代表任意数字
        ,代表千分位
        .代表小数点
        0代表位数不够补0
         */
        //代表加入千分位
        DecimalFormat df = new DecimalFormat("###,###.00000000");
        String s = df.format(1235.346666);
        System.out.println(s);

    }
}

 BigDecimal 属于大数据,精度极高。不属于基本数据类型,属于java对象(引用数据类型)专门用在财务软件中,财务软件中double不够用了.

import java.math.BigDecimal;
public class BigDecimalTest {
    public static void main(String[] args) {
        //这个100不是普通的一百,是精度极高的100
        BigDecimal v1 = new BigDecimal(100);
        System.out.println(v1);
        BigDecimal v2 = new BigDecimal(200);
        BigDecimal v3 = v1.add(v2);
        System.out.println(v3);
    }
}

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值