关于日期与时间的一些知识点

/**
 *  Date类是java.util包下的,需要掌握两个方法:
 *      - Date newTime = new Date();  //该方法的功能是:获取系统当前时间(精确到毫秒)
 *      - Date time = new Date(long date);
 *          说明:1、该方法的参数是一个long类型的数据(毫秒数),表示:以1970-01-01 00:00:000为计时起点的毫秒数。
 *               2、通过该方法获取的是:从1970年1月1日0时0分0秒000毫秒算起date毫秒后的日期
 *               
 *  另外需要掌握的两个方法是:
 *      1、SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); 指定日期输出格式
 *              说明:括号中的参数是程序员指定的日期输出格式:
 *                  - yyyy 年
 *                  - MM 月
 *                  - dd 日
 *                  - HH 时
 *                  - mm 分
 *                  - ss 秒
 *                  - SSS 毫秒
 *      2、long nowTimeMillis = System.currentTimeMillis(); 获取自1970年1月1日零时零分零秒零零零毫秒到当前系统时间的总毫秒数
 *
 * 简单总结以下System类的相关属性和方法:
 *     - System.out  [out 是System类的静态变量]
 *     - System.out.println()打印输出;【println()方法不是System类的,是PrintStream类的方法】
 *     - System.gc()建议启动垃圾回收器
 *     - System.exit(0)退出JVM
 *     - System.currentTimeMillis()获取自1970年1月1日0时0分0秒000毫秒到系统当前时间的总毫秒数
 */

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

public class DateText {
    public static void main(String[] args) throws ParseException {
//        获取系统当前时间(精确到毫秒)
        Date newTime = new Date();
        System.out.println(newTime);//Sat Dec 10 08:13:16 CST 2022
//        指定日期输出格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
//        将当前时间按照指定格式输出
        String newTimeStr = sdf.format(newTime);
        System.out.println(newTimeStr);//2022-12-10 08:13:16 776
//        以上代码是将Date------>String

//        下面我们将String------>Date
//        假设有一个日期型字符串,将它转换成Date类型
        String time = "2008-08-08 08:08:08 888";
//        需要注意:SimpleDateFormat的解析格式必须与日期型字符串的格式相同,否则会出现异常:java.text.parseException
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        Date date = sdf1.parse(time);
        System.out.println(date);//Fri Aug 08 08:08:08 CST 2008

//        获取自1970年1月1日零时零分零秒零零零毫秒到当前系统时间的总毫秒数
        long nowTimeMillis = System.currentTimeMillis();
        System.out.println(nowTimeMillis);

//        统计一个方法的耗时时长
//        在调用方法之前记录一个毫秒数
        long begin = System.currentTimeMillis();
        print();    //统计该方法执行的耗时时长
        long end = System.currentTimeMillis();
        System.out.println("调用方法所耗时长为:" + (end - begin) + "毫秒");

//        下行代码中的参数表示的是自1970年1月1日0时0分0秒000毫秒起的毫秒数(这是一个long类型的数值)
//        该方法获取到的时间是:从1970年1月1日0时0分0秒000毫秒算起2毫秒后的时间
        Date time1 = new Date(2);

//        规定显示的时间格式
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
//        下行代码为什么输出结果不是1970-01-01 00:00:002,而是多了8个小时呢?原因是:北京处于东8区,我们采用的是东八区的时间
        System.out.println(sdf2.format(time1));//1970-01-01 08:00:00 002

//        获取昨天的此时的时间
//        System.currentTimeMillis()获取自1970年1月1日零时零分零秒零零零毫秒到当前系统时间的总毫秒数
//        1000 * 60 * 60 * 24 这里的1000是毫秒,1000*60是1分钟,1000*60*60是1小时,1000*60*60*24是1天
        Date time2 = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24 );
        System.out.println(sdf2.format(time2));
    }

    private static void print() {
        for (int i = 0; i < 1000; i++) {
            System.out.println("i = " + i);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值